osm-search / Nominatim

Open Source search based on OpenStreetMap data
https://nominatim.org
GNU General Public License v3.0
3.22k stars 718 forks source link

COPY_END for place failed: ERROR: MultiPolygon cannot contain LineString element #781

Closed Roze closed 7 years ago

Roze commented 7 years ago

After the full planet import running the update fails in one of the incremental steps:

string(187) "INSERT INTO import_osmosis_log (batchend, batchseq, batchsize, starttime, endtime, event) values ('2017-07-28 23:58:58',1781,594715195,'2017-08-03 09:01:55','2017-08-03 09:56:47','index')" 2017-08-03 09:56:47 Completed index step for 2017-07-28 23:58:58 in 54.87 minutes 2017-08-03 09:56:47 Completed all for 2017-07-28 23:58:58 in 75.5 minutes Currently at sequence 1781 (28/07/2017 23:58:58) - t indexed /usr/bin/pyosmium-get-changes --server http://planet.openstreetmap.org/replication/day -o /data/Nominatim-3.0.0/build/osmosischange.osc -s 30 -I 1781 /data/Nominatim-3.0.0/build/osm2pgsql/osm2pgsql -klas --number-processes 1 -C 2000 -O gazetteer -d nominatim -P 5432 --flat-nodes /data/Nominatim-3.0.0/build/flatnode.file /data/Nominatim-3.0.0/build/osmosischange.osc osm2pgsql version 0.93.0-dev (64 bit id space)

Using projection SRS 4326 (Latlong) Allocating memory for dense node cache Allocating dense node cache in one big chunk Allocating memory for sparse node cache Sharing dense sparse Node-cache: cache=2000MB, maxblocks=32000*65536, allocation method=11 Mid: loading persistent node cache from /data/Nominatim-3.0.0/build/flatnode.file Mid: pgsql, cache=2000 Setting up table: planet_osm_nodes Setting up table: planet_osm_ways Setting up table: planet_osm_rels

Reading in file: /data/Nominatim-3.0.0/build/osmosischange.osc Using XML parser. Processing: Node(1492k 5.6k/s) Way(291k 0.42k/s) Relation(1730 20.84/s)COPY_END for place failed: ERROR: MultiPolygon cannot contain LineString element CONTEXT: COPY place, line 1, column geometry: "0106000020E61000000B0000000102000020E6100000000000000102000020E6100000000000000102000020E61000000000..."

Error occurred, cleaning up Error executing osm2pgsql: 1

Is there a way to fix ir or work arround ?

lonvia commented 7 years ago

Could you please test if the latest version of osm2pgsql fixes this issue? To do so, please:

Before doing so, please save the file /data/Nominatim-3.0.0/build/osmosischange.osc somewhere. If osm2pgsql is not the issue, it will be useful to have to reproduce the issue.

Roze commented 7 years ago

It seems that with the HEAD osm2pgsql the problem is fixed / gone (at least it moved past the problematic timestamp).

lonvia commented 7 years ago

Okay, thanks for testing. For information, the fix is https://github.com/openstreetmap/osm2pgsql/pull/759. The Nominatim master branch already has this fix. I'll do another release as soon as possible.