Creating change sets with osmosis 0.38 FAIL

Hello,
I have two small areas of data (.osm files) for Seattle. I downloaded the first file and made changes to it with JOSM. I posted those changes back to OSM server. I downloaded the second file (yes, it’s captured my changes) from OSM. Now I want to create a change set to do some experimens with PostGIS.

When I try to create a change set between the first osm file and the second I get errors. When I try to create a change set from PostGIS data (first osm file imported ) and second osm file I only get errors. I’ve gone as far as I can debugging this. And unfortuantely the dumps aren’t very descriptive about the problems. Any ideas?

Below are two osmosis commands and the stack dumps:

OSM FILE COMPARISON

  1. ./osmosis --read-xml file=“/WORKSPACE/osm/jsom/reup.osm” --read-xml file=“/WORKSPACE/osm/jsom/newreup.osm” --derive-change --write-xml-change file=“/WORKSPACE/osm/josm/difference.osc”
    Feb 27, 2011 5:25:16 PM org.openstreetmap.osmosis.core.Osmosis run
    INFO: Osmosis Version 0.38
    Feb 27, 2011 5:25:16 PM org.openstreetmap.osmosis.core.Osmosis run
    INFO: Preparing pipeline.
    Feb 27, 2011 5:25:16 PM org.openstreetmap.osmosis.core.Osmosis run
    INFO: Launching pipeline execution.
    Feb 27, 2011 5:25:16 PM org.openstreetmap.osmosis.core.Osmosis run
    INFO: Pipeline executing, waiting for completion.
    Feb 27, 2011 5:25:16 PM org.openstreetmap.osmosis.core.pipeline.common.ActiveTaskManager waitForCompletion
    SEVERE: Thread for task 1-read-xml failed
    org.openstreetmap.osmosis.core.OsmosisRuntimeException: Unable to read XML file /WORKSPACE/osm/jsom/reup.osm.
    at org.openstreetmap.osmosis.xml.v0_6.XmlReader.run(XmlReader.java:123)
    at java.lang.Thread.run(Thread.java:636)
    Caused by: java.io.FileNotFoundException: /WORKSPACE/osm/jsom/reup.osm (No such file or directory)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.(FileInputStream.java:137)
    at org.openstreetmap.osmosis.xml.v0_6.XmlReader.run(XmlReader.java:98)
    … 1 more
    Feb 27, 2011 5:25:16 PM org.openstreetmap.osmosis.core.pipeline.common.ActiveTaskManager waitForCompletion
    SEVERE: Thread for task 2-read-xml failed
    org.openstreetmap.osmosis.core.OsmosisRuntimeException: Unable to read XML file /WORKSPACE/osm/jsom/newreup.osm.
    at org.openstreetmap.osmosis.xml.v0_6.XmlReader.run(XmlReader.java:123)
    at java.lang.Thread.run(Thread.java:636)
    Caused by: java.io.FileNotFoundException: /WORKSPACE/osm/jsom/newreup.osm (No such file or directory)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.(FileInputStream.java:137)
    at org.openstreetmap.osmosis.xml.v0_6.XmlReader.run(XmlReader.java:98)
    … 1 more
    Feb 27, 2011 5:25:16 PM org.openstreetmap.osmosis.core.pipeline.common.ActiveTaskManager waitForCompletion
    SEVERE: Thread for task 3-derive-change failed
    org.openstreetmap.osmosis.core.OsmosisRuntimeException: An input error has occurred, aborting.
    at org.openstreetmap.osmosis.core.store.DataPostbox.checkForInputErrors(DataPostbox.java:88)
    at org.openstreetmap.osmosis.core.store.DataPostbox.consumeCentralQueue(DataPostbox.java:153)
    at org.openstreetmap.osmosis.core.store.DataPostbox.hasNext(DataPostbox.java:235)
    at org.openstreetmap.osmosis.set.v0_6.ChangeDeriver.run(ChangeDeriver.java:101)
    at java.lang.Thread.run(Thread.java:636)
    Feb 27, 2011 5:25:16 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(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:329)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:239)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
    at org.codehaus.classworlds.Launcher.main(Launcher.java:31)

OSM TO POSTGIS COMPARISON

  1. ./osmosis --read-xml file=“/WORKSPACE/osm/josm/newreup.osm” --read-apidb host=“localhost” database=“seattle” user=“gisuser” password=“gisuser” --derive-change --write-xml-change file=“difference.osc”
    Feb 27, 2011 5:35:59 PM org.openstreetmap.osmosis.core.Osmosis run
    INFO: Osmosis Version 0.38
    Feb 27, 2011 5:35:59 PM org.openstreetmap.osmosis.core.Osmosis run
    INFO: Preparing pipeline.
    Feb 27, 2011 5:35:59 PM org.openstreetmap.osmosis.core.Osmosis run
    INFO: Launching pipeline execution.
    Feb 27, 2011 5:35:59 PM org.openstreetmap.osmosis.core.Osmosis run
    INFO: Pipeline executing, waiting for completion.
    Feb 27, 2011 5:35:59 PM org.openstreetmap.osmosis.core.pipeline.common.ActiveTaskManager waitForCompletion
    SEVERE: Thread for task 1-read-xml failed
    org.openstreetmap.osmosis.core.OsmosisRuntimeException: An output error has occurred, aborting.
    at org.openstreetmap.osmosis.core.store.DataPostbox.checkForOutputErrors(DataPostbox.java:76)
    at org.openstreetmap.osmosis.core.store.DataPostbox.populateCentralQueue(DataPostbox.java:132)
    at org.openstreetmap.osmosis.core.store.DataPostbox.put(DataPostbox.java:182)
    at org.openstreetmap.osmosis.set.v0_6.impl.DataPostboxSink.process(DataPostboxSink.java:34)
    at org.openstreetmap.osmosis.xml.v0_6.impl.NodeElementProcessor.end(NodeElementProcessor.java:117)
    at org.openstreetmap.osmosis.xml.v0_6.impl.OsmHandler.endElement(OsmHandler.java:107)
    at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
    at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
    at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
    at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
    at org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown Source)
    at javax.xml.parsers.SAXParser.parse(SAXParser.java:195)
    at org.openstreetmap.osmosis.xml.v0_6.XmlReader.run(XmlReader.java:108)
    at java.lang.Thread.run(Thread.java:636)
    Feb 27, 2011 5:35:59 PM org.openstreetmap.osmosis.core.pipeline.common.ActiveTaskManager waitForCompletion
    SEVERE: Thread for task 2-read-apidb failed
    org.openstreetmap.osmosis.core.OsmosisRuntimeException: Unable to create resultset.
    at org.openstreetmap.osmosis.apidb.common.DatabaseContext.executeQuery(DatabaseContext.java:429)
    at org.openstreetmap.osmosis.apidb.v0_6.impl.SchemaVersionValidator.validateDBVersion(SchemaVersionValidator.java:82)
    at org.openstreetmap.osmosis.apidb.v0_6.impl.SchemaVersionValidator.validateVersion(SchemaVersionValidator.java:55)
    at org.openstreetmap.osmosis.apidb.v0_6.ApidbReader.runImpl(ApidbReader.java:71)
    at org.openstreetmap.osmosis.apidb.v0_6.ApidbReader$1.doInTransactionWithoutResult(ApidbReader.java:107)
    at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
    at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130)
    at org.openstreetmap.osmosis.apidb.common.DatabaseContext2.executeWithinTransaction(DatabaseContext2.java:102)
    at org.openstreetmap.osmosis.apidb.v0_6.ApidbReader.run(ApidbReader.java:102)
    at java.lang.Thread.run(Thread.java:636)
    Caused by: org.postgresql.util.PSQLException: ERROR: relation “schema_migrations” does not exist
    Position: 21
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2062)
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1795)
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:479)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:353)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:252)
    at org.openstreetmap.osmosis.apidb.common.DatabaseContext.executeQuery(DatabaseContext.java:424)
    … 9 more
    Feb 27, 2011 5:35:59 PM org.openstreetmap.osmosis.core.pipeline.common.ActiveTaskManager waitForCompletion
    SEVERE: Thread for task 3-derive-change failed
    org.openstreetmap.osmosis.core.OsmosisRuntimeException: An input error has occurred, aborting.
    at org.openstreetmap.osmosis.core.store.DataPostbox.checkForInputErrors(DataPostbox.java:88)
    at org.openstreetmap.osmosis.core.store.DataPostbox.consumeCentralQueue(DataPostbox.java:158)
    at org.openstreetmap.osmosis.core.store.DataPostbox.hasNext(DataPostbox.java:235)
    at org.openstreetmap.osmosis.set.v0_6.ChangeDeriver.run(ChangeDeriver.java:101)
    at java.lang.Thread.run(Thread.java:636)
    Feb 27, 2011 5:35:59 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(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:329)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:239)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
    at org.codehaus.classworlds.Launcher.main(Launcher.java:31)
    postgres@twinkie:~/Downloads/osmosis-0.38/bin$

Well you have two error messages:

  1. Osmosis didnt find your two xml files
    “SEVERE: Thread for task 2-read-xml failed
    org.openstreetmap.osmosis.core.OsmosisRuntimeException: Unable to read XML file /WORKSPACE/osm/jsom/newreup.osm.
    at org.openstreetmap.osmosis.xml.v0_6.XmlReader.run(XmlReader.java:123)”
  2. You havent installed relevant tables in your PostGIS db.
    “Caused by: org.postgresql.util.PSQLException: ERROR: relation “schema_migrations” does not exist”

BEFORE trying to do something complex, TRY SOMETHING SIMPLE, like reading and writing the same xml file or writing XML from your PostGIS api database. or creating a dummy osc file and loading that to PostGis. You’ll catch trivial errors way faster: and grepping out the trace stack helps too.

Thanks SK53 for the tips,

I actually already did a read and write of same xml file with osmosis before I attempted change sets.

You did point out a traceback error I missed though related to this problem:
“Caused by: org.postgresql.util.PSQLException: ERROR: relation “schema_migrations” does not exist”

I didn’t see that before. Googling this led me to another one of your posts where you explain the problem to a forum poster.
http://forum.openstreetmap.org/viewtopic.php?id=7396

It was helpful because I didn’t know from osmosis API page there were more than one postgresql schemas for using OSM data.

If I get things working correctly, then I’ll update this post.

Thanks again,
:wink: