[postgis-tickets] [PostGIS] #2360: ST_DumpAsPolygons database engine crash

PostGIS trac at osgeo.org
Thu Jun 13 05:56:03 PDT 2013


#2360: ST_DumpAsPolygons database engine crash
----------------------+-----------------------------------------------------
 Reporter:  kafka     |       Owner:  pramsey      
     Type:  defect    |      Status:  new          
 Priority:  critical  |   Milestone:  PostGIS 2.1.0
Component:  postgis   |     Version:  2.0.x        
 Keywords:            |  
----------------------+-----------------------------------------------------
 When executing ST_DumpAsPolygons, database engine crashes.

 Example query:
 {{{
 SELECT (ST_DumpAsPolygons(
         ST_AsRaster(
                 ST_GeomFromText('POLYGON((0 0,0 10,10 10,10 0,0
 0))',4326), 100, 100, '2BUI'
         )
 )).*
 }}}

 Environment:[[BR]]
 - postgis 2.0.3 (tested also on 2.0.1)[[BR]]
 - postgresql 9.1 (tested also on 9.2)[[BR]]
 - gdal 1.9.2[[BR]]
 - geos 3.3.8[[BR]]
 - debian 6 squeeze[[BR]]

 Valgrind report:
 {{{
 ==25861== Invalid free() / delete / delete[]
 ==25861==    at 0x4C23E0F: operator delete(void*)
 (vg_replace_malloc.c:387)
 ==25861==    by 0xDAD1488: OGRLIBKMLDriver::~OGRLIBKMLDriver() (in
 /usr/lib/libgdal.so.1.16.2)
 ==25861==    by 0xDB2CDF6: OGRSFDriverRegistrar::~OGRSFDriverRegistrar()
 (in /usr/lib/libgdal.so.1.16.2)
 ==25861==    by 0xDB2D5D8: OGRCleanupAll (in /usr/lib/libgdal.so.1.16.2)
 ==25861==    by 0xD14E3AD: rt_raster_gdal_rasterize (in
 /usr/lib/postgresql/9.1/lib/rtpostgis-2.0.so)
 ==25861==    by 0xD131279: RASTER_asRaster (in
 /usr/lib/postgresql/9.1/lib/rtpostgis-2.0.so)
 ==25861==    by 0x2BC08D: ??? (in /usr/lib/postgresql/9.1/bin/postgres)
 ==25861==    by 0x2B742D: ??? (in /usr/lib/postgresql/9.1/bin/postgres)
 ==25861==    by 0x2BBF48: ??? (in /usr/lib/postgresql/9.1/bin/postgres)
 ==25861==    by 0x2BA84D: ??? (in /usr/lib/postgresql/9.1/bin/postgres)
 ==25861==    by 0x2B713D: ExecProject (in
 /usr/lib/postgresql/9.1/bin/postgres)
 ==25861==    by 0x2CE46A: ExecResult (in
 /usr/lib/postgresql/9.1/bin/postgres)
 ==25861==  Address 0x8870af0 is 0 bytes inside a block of size 1 free'd
 ==25861==    at 0x4C23E0F: operator delete(void*)
 (vg_replace_malloc.c:387)
 ==25861==    by 0xDAD1488: OGRLIBKMLDriver::~OGRLIBKMLDriver() (in
 /usr/lib/libgdal.so.1.16.2)
 ==25861==    by 0xDB2CDF6: OGRSFDriverRegistrar::~OGRSFDriverRegistrar()
 (in /usr/lib/libgdal.so.1.16.2)
 ==25861==    by 0xDB2D5D8: OGRCleanupAll (in /usr/lib/libgdal.so.1.16.2)
 ==25861==    by 0xD14E3AD: rt_raster_gdal_rasterize (in
 /usr/lib/postgresql/9.1/lib/rtpostgis-2.0.so)
 ==25861==    by 0xD131279: RASTER_asRaster (in
 /usr/lib/postgresql/9.1/lib/rtpostgis-2.0.so)
 ==25861==    by 0x2BC08D: ??? (in /usr/lib/postgresql/9.1/bin/postgres)
 ==25861==    by 0x2B742D: ??? (in /usr/lib/postgresql/9.1/bin/postgres)
 ==25861==    by 0x2BBF48: ??? (in /usr/lib/postgresql/9.1/bin/postgres)
 ==25861==    by 0x2BA84D: ??? (in /usr/lib/postgresql/9.1/bin/postgres)
 ==25861==    by 0x2B713D: ExecProject (in
 /usr/lib/postgresql/9.1/bin/postgres)
 ==25861==    by 0x2CE46A: ExecResult (in
 /usr/lib/postgresql/9.1/bin/postgres)
 ==25861==
 }}}

-- 
Ticket URL: <http://trac.osgeo.org/postgis/ticket/2360>
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