[postgis-tickets] [PostGIS] #4894: Intersection with distinct geometries crashes postgres
PostGIS
trac at osgeo.org
Fri Apr 9 06:05:34 PDT 2021
#4894: Intersection with distinct geometries crashes postgres
---------------------+---------------------------
Reporter: mschott | Owner: pramsey
Type: defect | Status: new
Priority: medium | Milestone: PostGIS 3.1.2
Component: postgis | Version: 3.1.x
Keywords: |
---------------------+---------------------------
A set of geometries were extracted from OSM and a raster. They were
cleaned (st_makevalid) and snapped to a 7 digit grid. The OSM polygons are
collected into a geometrycollection (group by) and intersected with the
raster polygons.
The following combination of geometries crashes postgres (commands that
crash postgres are commented out):
{{{
WITH geoms AS (
SELECT
st_geomfromtext('GEOMETRYCOLLECTION (MULTIPOLYGON (((13.0495147
52.41036419999999, 13.0494857 52.41024449999999, 13.048656099999999
52.409416799999995, 13.0479896 52.40870139999999, 13.047915600000001
52.4086247, 13.047459499999999 52.40815189999999, 13.046588400000001
52.40738379999999, 13.045684800000002 52.40768049999999, 13.0456071
52.407692699999984, 13.045425800000002 52.407721200000005,
13.045244700000001 52.40774959999999, 13.044752299999999
52.407786599999994, 13.044569300000001 52.40780169999999, 13.0439619
52.40786429999999, 13.043509 52.40795669999999, 13.043333899999999
52.40800399999999, 13.0431124 52.40809480000001, 13.042738300000002
52.40826519999999, 13.042455400000001 52.4083951, 13.0422325
52.408509099999996, 13.042517799999999 52.40876749999999, 13.0440662
52.41139409999999, 13.0495147 52.41036419999999))))') AS a,
st_geomfromtext('POLYGON ((13.0444661 52.4111012,
13.044466100000001 52.41110079999999, 13.044466799999999
52.41110079999999, 13.0444669 52.41110039999999, 13.044467599999999
52.41110039999999, 13.044467599999999 52.4111013, 13.0444661
52.4111012))') AS b
)
SELECT
st_isvalid(a),
st_isvalid(b)
--,st_intersects(a,b)
--,st_intersection(a,b)
--,st_difference(a,b)
FROM
geoms;
}}}
Any other geometry combination I have tried so far works except for this
combination.
Version:
`POSTGIS="3.1.1 0" [EXTENSION] PGSQL="130" GEOS="3.8.1-CAPI-1.13.3"
PROJ="7.1.1" GDAL="GDAL 3.1.4, released 2020/10/20" LIBXML="2.9.10"
LIBJSON="0.15" LIBPROTOBUF="1.3.3" WAGYU="0.5.0 (Internal)" (core procs
from "3.1.1 aaf4c79" need upgrade) TOPOLOGY (topology procs from "3.1.1
aaf4c79" need upgrade) RASTER (raster procs from "3.1.1 aaf4c79" need
upgrade)`
`PostgreSQL 13.2 on x86_64-pc-linux-musl, compiled by gcc (Alpine
10.2.1_pre1) 10.2.1 20201203, 64-bit`
LOG message:
{{{
.278 UTC [1] LOG: server process (PID 2091) was terminated by signal 11:
Segmentation fault
.278 UTC [1] DETAIL: Failed process was running: WITH geoms AS (
ESC[36midealvgi_postgisdb |ESC[0m SELECT
ESC[36midealvgi_postgisdb |ESC[0m
st_geomfromtext('GEOMETRYCOLLECTION (MULTIPOLYGON (((13.0495147
52.41036419999999, 13.0494857 52.41024449999999, 13.048656099999999
52.409416799999995, 13.0479896 52.40870139999999, 13.047915600000001
52.4086247, 13.047459499999999 52.40815189999999, 13.046588400000001
52.40738379999999, 13.045684800000002 52.40768049999999, 13.0456071
52.407692699999984, 13.045425800000002 52.407721200000005,
13.045244700000001 52.40774959999999, 13.044752299999999
52.407786599999994, 13.044569300000001 52.40780169999999, 13.0439619
52.40786429999999, 13.043509 52.40795669999999, 13.043333899999999
52.40800399999999, 13.0431124 52.40809480000001, 13.042738300000002
52.40826519999999, 13.042455400000001 52.4083951, 13.0422325
52.408509099999996, 13.042517799999999 52.40876749999999, 13.0440662
52.41139409999999, 13.0495147 52.41036419999999))))') AS a,
ESC[36midealvgi_postgisdb |ESC[0m st_geomfromtext('POLYGON
((13.0444661 52.4111012, 13.044466100000001 52.41110079999999,
13.044466799999999 52.41110079999999, 13.044
.279 UTC [1] LOG: terminating any other active server processes
.279 UTC [2046] WARNING: terminating connection because of crash of
another server process
.279 UTC [2046] DETAIL: The postmaster has commanded this server process
to roll back the current transaction and exit, because another server
process exited abnormally and possibly corrupted shared memory.
.279 UTC [2046] HINT: In a moment you should be able to reconnect to the
database and repeat your command.
.279 UTC [2101] WARNING: terminating connection because of crash of
another server process
.279 UTC [2101] DETAIL: The postmaster has commanded this server process
to roll back the current transaction and exit, because another server
process exited abnormally and possibly corrupted shared memory.
.279 UTC [2101] HINT: In a moment you should be able to reconnect to the
database and repeat your command.
.280 UTC [2102] WARNING: terminating connection because of crash of
another server process
.280 UTC [2102] DETAIL: The postmaster has commanded this server process
to roll back the current transaction and exit, because another server
process exited abnormally and possibly corrupted shared memory.
.280 UTC [2102] HINT: In a moment you should be able to reconnect to the
database and repeat your command.
.281 UTC [1] LOG: all server processes terminated; reinitializing
.293 UTC [2103] LOG: database system was interrupted; last known up at
2021-04-09 12:55:01 UTC
.332 UTC [2104] FATAL: the database system is in recovery mode
.369 UTC [2103] LOG: database system was not properly shut down;
automatic recovery in progress
.373 UTC [2103] LOG: invalid record length at 1/1A694510: wanted 24, got
0
.373 UTC [2103] LOG: redo is not required
.385 UTC [2105] FATAL: the database system is in recovery mode
.415 UTC [1] LOG: database system is ready to accept connections
}}}
--
Ticket URL: <https://trac.osgeo.org/postgis/ticket/4894>
PostGIS <http://trac.osgeo.org/postgis/>
The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project.
More information about the postgis-tickets
mailing list