[postgis-devel] [PostGIS] #1697: Crash in GiST index with empty MultiPolygons
PostGIS
trac at osgeo.org
Tue Mar 20 19:46:19 PDT 2012
#1697: Crash in GiST index with empty MultiPolygons
---------------------------+------------------------------------------------
Reporter: realityexists | Owner: pramsey
Type: defect | Status: new
Priority: critical | Milestone: PostGIS 2.0.0
Component: postgis | Version: trunk
Keywords: |
---------------------------+------------------------------------------------
2.0.0 rev 9517, 32-bit, PostgreSQL 9.1.3
I have a table with a geography(MultiPolygon) column and a GiST index on
that column. For each new row my application initially inserts
'MULTIPOLYGON EMPTY' into that column, then updates it to the real (non-
empty) value. After some number of successful inserts any further inserts
crash with the attached stack trace. If I insert a different dummy polygon
(not empty) everything works fine.
I wasn't able to create a simple repro for this, so I suspect it takes
some amount of data for the index to get into a bad state. The stack trace
is from Linux, but this also happens on Windows (beta 3 binaries).
The client gets messages like this when trying to insert another value
(once a crash has occurred):
{{{
NOTICE: [geography_inout.c:gserialized_geography_from_lwgeom:117] typmod
was -1
LINE 22: ...(E'SA')), ((E'FL')), ((245)), ((E'MULTIPOL...
^
NOTICE: [gserialized_typmod.c:postgis_valid_typmod:115] Entered function
NOTICE: [gserialized_typmod.c:postgis_valid_typmod:120] Got geom(type =
6, srid = 4326, hasz = 0, hasm = 0)
NOTICE: [gserialized_typmod.c:postgis_valid_typmod:121] Got typmod(type =
6, srid = 4326, hasz = 0, hasm = 0)
NOTICE: [gserialized_gist_nd.c:gserialized_gist_compress:488] [GIST]
'compress' function called
NOTICE: [gserialized_gist_nd.c:gserialized_gist_compress:500] [GIST]
processing leafkey input
NOTICE: [gserialized_gist.c:gserialized_datum_get_gidx_p:241] entered
function
NOTICE: [gserialized_gist.c:gserialized_datum_get_gidx_p:250] got flags 8
NOTICE: [gserialized_gist.c:gserialized_datum_get_gidx_p:270] could not
calculate bbox, returning failure
NOTICE: [gserialized_gist_nd.c:gserialized_gist_compress:522] [GIST]
empty geometry!
NOTICE: [gserialized_gist_nd.c:gserialized_gist_picksplit:1016] [GIST]
'picksplit' function called
********** Error **********
}}}
--
Ticket URL: <http://trac.osgeo.org/postgis/ticket/1697>
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-devel
mailing list