1

I extract highways from OSM every day from a cron job and keep a postgis database up-to-date. Due to a database change, the syncing has stopped in December 2017. I am trying to re-sync with a sequence number from earlier than December 03 2018 (when the syncing failed), but, I get a

org.openstreetmap.osmosis.core.OsmosisRuntimeException: The replication state doesn't contain a timestamp property.

Error. How can I rectify the issue and make the database current? Below is the failure:

-------------------Fri Sep 14 14:18:42 EDT 2018----------------------

Sep 14, 2018 2:18:42 PM org.openstreetmap.osmosis.core.Osmosis run
INFO: Osmosis Version 0.45
Sep 14, 2018 2:18:42 PM org.openstreetmap.osmosis.core.Osmosis run
INFO: Preparing pipeline.
Sep 14, 2018 2:18:42 PM org.openstreetmap.osmosis.core.Osmosis run
INFO: Launching pipeline execution.
Sep 14, 2018 2:18:42 PM org.openstreetmap.osmosis.core.Osmosis run
INFO: Pipeline executing, waiting for completion.
Sep 14, 2018 2:18:43 PM org.openstreetmap.osmosis.core.pipeline.common.ActiveTaskManager waitForCompletion
SEVERE: Thread for task 1-read-replication-interval failed
org.openstreetmap.osmosis.core.OsmosisRuntimeException: The replication state doesn't contain a timestamp property.
    at org.openstreetmap.osmosis.replication.common.ReplicationState.loadProperty(ReplicationState.java:65)
    at org.openstreetmap.osmosis.replication.common.ReplicationState.load(ReplicationState.java:78)
    at org.openstreetmap.osmosis.replication.common.ReplicationState.<init>(ReplicationState.java:59)
    at org.openstreetmap.osmosis.replication.common.ServerStateReader.getServerState(ServerStateReader.java:108)
    at org.openstreetmap.osmosis.replication.common.ServerStateReader.getServerState(ServerStateReader.java:50)
    at org.openstreetmap.osmosis.replication.v0_6.BaseReplicationDownloader.runImpl(BaseReplicationDownloader.java:290)
    at org.openstreetmap.osmosis.replication.v0_6.BaseReplicationDownloader.run(BaseReplicationDownloader.java:383)
    at java.lang.Thread.run(Unknown Source)

Sep 14, 2018 2:18:43 PM org.openstreetmap.osmosis.core.Osmosis main
SEVERE: Execution aborted.
org.openstreetmap.osmosis.core.OsmosisRuntimeException: One or more tasks failed.
    at org.openstreetmap.osmosis.core.pipeline.common.Pipeline.waitForCompletion(Pipeline.java:146)
    at org.openstreetmap.osmosis.core.Osmosis.run(Osmosis.java:92)
    at org.openstreetmap.osmosis.core.Osmosis.main(Osmosis.java:37)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:330)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:238)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
    at org.codehaus.classworlds.Launcher.main(Launcher.java:47)
  • 4
    Side note: syncing 10 months of minutely diffs isn't a good idea in general as it takes forever to complete. Better download a current planet.osm.pbf, import it, and then enable syncing again. – mmd Sep 15 '18 at 11:12
  • @mmd Thanks for the comment. Do you think there's also a problem with https and http diff urls? I am still using the http version – picmate Sep 16 '18 at 16:14
  • 3
    Yes, osmosis is known to break down on http urls (it doesn't follow the redirect to https and aborts), so you need to switch to an https url in any case. – mmd Sep 16 '18 at 16:17
  • 1
    crosspost: help.openstreetmap.org/questions/65905/… – scai Sep 17 '18 at 11:27
  • 1
    For info, the switch2osm branch of github.com/SomeoneElseOSM/mod_tile/blob/switch2osm/… , which is what switch2osm.org/manually-building-a-tile-server-18-04-lts uses, ensures that the URL used to initiate replication is an https one. – SomeoneElse Nov 7 '18 at 19:02
1

In my case, The replication state doesn't contain a timestamp propertyresulted directly due to not using the https url in configuration.txt and it was not related to state.txt. Changing the url to baseUrl=https://planet.openstreetmap.org/replication/minute/ took care of the issue.

Java Run Time environment threw another issue because the security certificate related to https://planet.openstreetmap.org was not in JRE's keystore on the server from which I did the update. Resolved that by, downloading the security certificate from a browser and adding that to the JRE's keystore. Following is a useful post to resolve that issue.

https://stackoverflow.com/questions/21076179/pkix-path-building-failed-and-unable-to-find-valid-certification-path-to-requ

Once both these problems are resolved, the process started to run as intended and completed successfully.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.