Opened 3 years ago
Last modified 3 years ago
#21947 new defect
JOSM : Download from Overpass request failed (server too busy)
Reported by: | SiiG | Owned by: | team |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | Core | Version: | latest |
Keywords: | Cc: | SiiG |
Description
Hi,
For several days we have encountered the following problem when downloading data from the following overpass request under JOSM (11.0.13):
[out:xml][timeout:25];
{{geocodeArea:Gaujac, Gard}}->.searchArea;
(
nodehighway(area.searchArea);
nodeaddr:housenumber(area.searchArea);
wayhighway(area.searchArea);
relation["type"="associatedStreet"](area.searchArea);
);
(._;>;);
out meta;
The following error message is returned by JOSM and we are unable to download the data:
ResponseCode=504, Error Header=<timeout. The server is probably too busy to handle your request.>, Error Body=<<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-W3CDTD XHTML 1.0 Strict EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang ="en" lang="en"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" lang="en"/> <title>OSM3S Response< /title> </head> <body> <p>The data included in this document is from www.openstreetmap.org. The data is made available under ODbL.</p> <p><strong style="color:#FF0000">Error</strong>: runtime error: open64: 0 Success /osm3s_v0.7.57_osm_base Dispatcher_Client::request_read_and_idx:: timeout. The server is probably too busy to handle your request. </p> </body> </html>>
Does anyone have a solution for us because we are stuck in our work ?
Thank you in advance
Attachments (0)
Change History (5)
comment:1 by , 3 years ago
comment:2 by , 3 years ago
Priority: | major → normal |
---|
We (JOSM) don't run any public Overpass API server. See wiki:/Help/Preferences/Connection#OverpassServer for the preference location and a link to a list of public Overpass API servers. (JOSM Preferences -> OSM Server
-> modify Overpass server
to another overpass instance).
I guess one question is should we add more public Overpass API servers to the defaults? (see comment:18:ticket:11428, r8688 for the introduction of http://overpass.openstreetmap.ru/cgi
-- the server provider had to move off of rambler, see r13682).
I'm personally disinclined to hardcode additional overpass API servers, so we'd want to have something like the background layer page for overpass API servers.
comment:3 by , 3 years ago
It is possible to get a status to check how many slots are available.
It also give the time to wait.
Read about it here
https://dev.overpass-api.de/overpass-doc/en/preface/commons.html
In section "Rate Limit"
Use http://overpass-api.de/api/status
to get a response with slots available.
Example 1, 2 slots ready, continue :
Rate limit: 2
2 slots available now.
Example 2, 1 slot ready, continue :
Rate limit: 2
1 slots available now.
Slot available after: 2022-03-18T13:55:34Z, in 9 seconds.
Example 3, no slot ready, wait:
Rate limit: 2
Slot available after: 2022-03-18T13:55:23Z, in 48 seconds.
Slot available after: 2022-03-18T13:55:34Z, in 59 seconds.
Example 4, the time can be negative, 1 slot ready, continue :
Rate limit: 2
Slot available after: 2022-03-18T13:55:34Z, in -1 seconds.
Slot available after: 2022-03-18T13:56:34Z, in 59 seconds.
comment:4 by , 3 years ago
I've actually written something that parses said /status
page before. I don't know if I'd want to port it to JOSM as is -- I'd probably want to have some kind of timer to wait for the timeout to finish, possibly refreshing every 60s if the timeout is >2 minutes, listeners for when the timeout finishes, etc.
It looks like the /status
api call was introduced in 9e60cd030f87732bfb0f9c1a9ca5279976c31bce (in v0.7.53, released on 2016-08-30).
So it should be safe to assume that all live overpass api instances have a /status
endpoint.
comment:5 by , 3 years ago
It is possible to add a timeout in the request, then it is aborted by the server.
Read about it here
https://dev.overpass-api.de/overpass-doc/en/preface/commons.html
In section "Timeout and Maxsize"
As long as timeout internally in JOSM-program is longer than timeout in request then server will timeout first. Then the message from server can be displayed to the user.
Yes, me too. On the other hand for small areas it is sometimes working for me. I guess the problem is with the overpass server and the message is true.
You can try to use a different server, though, see Help/Preferences/Connection.