wiktorn / Overpass-API

Overpass API docker image
MIT License
133 stars 47 forks source link

Error during diff download. Bailing out. #98

Closed larsschwarz closed 2 years ago

larsschwarz commented 2 years ago

I initially installed some time ago when I now try to run in init mode I see this in my debug log

2022-07-22 13:35:53 INFO: Using replication server at http://download.openstreetmap.fr/replication/europe/germany/minute/
2022-07-22 13:35:53 DEBUG: Using given sequence ID 4736778
2022-07-22 13:35:53 DEBUG: Starting download at ID 4736779 (max 100 MB)
2022-07-22 13:35:53 DEBUG: Error during diff download. Bailing out.
Empty version, skipping file
<?xml version='1.0' encoding='UTF-8'?>
<osmChange version="0.6" generator="libosmium/2.15.6">
</osmChange>
Update finished with status code: 3

I don't know for how long this server keeps the diffs, but is this because diff between my original install date and the current diff is too huge/long?

Here's an empty reponse to show the API response (and OSM date)

{
  "version": 0.6,
  "generator": "Overpass API 0.7.56.9 76e5016d",
  "osm3s": {
    "timestamp_osm_base": "2021-09-30T05:53:44Z",
    "timestamp_areas_base": "2021-09-30T05:53:44Z",
    "copyright": "The data included in this document is from www.openstreetmap.org. The data is made available under ODbL."
  },
  "elements": [
  ]
}

Is there any way to apply the diffs?

wiktorn commented 2 years ago

The issue is that if your OSM base is from 2021-09-30T05:53:44Z, the server https://download.openstreetmap.fr/replication/europe/germany/minute/ is not providing the diffs since 2021-09-30. The oldest diff is from 2022-06-18T08:10:49Z.

You can always try to create the diff by hand using other sources and apply by hand, but in this case, I'd just recreate from initial extract.

And just to answer original doubt - even if there would be a huge distance between original date and current update but minute diffs would be available, then diff's would have been downloaded, grouped up to 100MB in a pack and applied in a loop, until no further diffs are left.

larsschwarz commented 2 years ago

Thanks, that makes sense.

Actually I tried docker stop, docker rm and docker rmi and re-ran the init command expecting everything was gone, but it seems I'm missing some docker commands to fully remove the image to be able to do a clean init? Even though this is probably a Docker usage issue it might be helpful for others that don't use Docker that often to have some remove/re-install/rebuild instructions? Thanks

wiktorn commented 2 years ago

To fully rerun the init, you need to either mount different path under /db or just remove the files in the directory that you mount as /db within container. It's the path that you provide to -v argument

larsschwarz commented 2 years ago

That did the trick. Thanks for your support Wiktor

wiktorn commented 2 years ago

No problem, closing the issue then,.