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)
6
  • 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, 2018 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, 2018 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, 2018 at 16:17
  • 1
    crosspost: help.openstreetmap.org/questions/65905/…
    – scai
    Sep 17, 2018 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. Nov 7, 2018 at 19:02

1 Answer 1

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.

This site is temporarily in read-only mode and not accepting new answers.

Not the answer you're looking for? Browse other questions tagged .