[postgis-devel] [PostGIS] #465: st_makevalid segfault

PostGIS trac at osgeo.org
Mon Mar 15 20:00:12 PDT 2010


#465: st_makevalid segfault
---------------------+------------------------------------------------------
 Reporter:  pramsey  |       Owner:  strk         
     Type:  defect   |      Status:  new          
 Priority:  medium   |   Milestone:  PostGIS 2.0.0
Component:  postgis  |     Version:  trunk        
 Keywords:  osx      |  
---------------------+------------------------------------------------------
 In OS/X 10.5, running caseno == 3 result in a backend crash, though not,
 curiously before it has a change to return a result...?
 {{{
          1: st_astext = "MULTIPOLYGON(((2 4,2 6,4 4,2 4)),((4 4,6 6,6 4,4
 4)))"(typeid = 25, len = -1, typmod = -1, byval = f)
         ----

 Program received signal EXC_BAD_ACCESS, Could not access memory.
 Reason: 13 at address: 0x0000000000000000
 0x00000001039b3a74 in geos::geom::GeometryCollection::apply_ro () at
 atomicity.h:51
 51        { return __sync_fetch_and_add(__mem, __val); }
 (gdb) bt
 #0  0x00000001039b3a74 in geos::geom::GeometryCollection::apply_ro () at
 atomicity.h:51
 #1  0x00000001039b3a80 in geos::geom::GeometryCollection::apply_ro () at
 atomicity.h:51
 #2  0x0000000100746c30 in GEOSGeom_extractUniquePoints_r
 (extHandle=0x100604b80, g=0x100604c60) at geos_ts_c.cpp:4784
 #3  0x0000000103693919 in lwgeom_make_valid (lwgeom_in=0x100908530) at
 lwgeom_geos_clean.c:766
 #4  0x0000000103693e00 in ST_MakeValid (fcinfo=0x7fff5fbfe810) at
 lwgeom_geos_clean.c:913
 #5  0x0000000100111201 in ExecMakeFunctionResultNoSets
 (fcache=0x1008f81c8, econtext=0x1008f7c80, isNull=0x7fff5fbfef50 "\006",
 isDone=0x7fff5fbfeb51) at execQual.c:1412
 #6  0x0000000100111172 in ExecMakeFunctionResultNoSets
 (fcache=0x1008f7db0, econtext=0x1008f7c80, isNull=0x1008f9250 "",
 isDone=<value temporarily unavailable, due to optimizations>) at
 execQual.c:1387
 #7  0x000000010010cadf in ExecTargetList [inlined] () at
 /Users/pramsey/Code/postgresql-8.3.8/src/backend/executor/execQual.c:4610
 #8  0x000000010010cadf in ExecProject (projInfo=<value temporarily
 unavailable, due to optimizations>, isDone=0x7fff5fbff0ac) at
 execQual.c:4811
 #9  0x0000000100113cef in ExecScan (node=0x1008f7b68,
 accessMtd=0x100121260 <SeqNext>) at execScan.c:143
 #10 0x000000010010c4f2 in ExecProcNode (node=0x1008f7b68) at
 execProcnode.c:334
 #11 0x000000010010b21c in ExecutePlan [inlined] () at
 /Users/pramsey/Code/postgresql-8.3.8/src/backend/executor/execMain.c:1335
 #12 0x000000010010b21c in ExecutorRun (queryDesc=<value temporarily
 unavailable, due to optimizations>, direction=ForwardScanDirection,
 count=0) at execMain.c:270
 #13 0x00000001001bee79 in PortalRunSelect (portal=0x1008f5838,
 forward=<value temporarily unavailable, due to optimizations>, count=0,
 dest=0x1003d24a0) at pquery.c:943
 #14 0x00000001001c09af in PortalRun (portal=0x1008f5838,
 count=9223372036854775807, isTopLevel=1 '\001', dest=0x1003d24a0,
 altdest=0x1003d24a0, completionTag=0x7fff5fbff460 "") at pquery.c:769
 #15 0x00000001001bb5ca in exec_simple_query (query_string=0x1008c0438
 "select st_astext(st_makevalid(orig)) from clean_cases where caseno =
 3;\n") at postgres.c:1004
 #16 0x00000001001bc861 in PostgresMain (argc=1, argv=0x1006004f8,
 username=0x1006011d0 "pramsey") at postgres.c:3631
 #17 0x00000001001317ae in main (argc=3, argv=0x1006004f0) at main.c:186
 Current language:  auto; currently c++
 }}}
 SQL was
 {{{
 select st_astext(st_makevalid(orig)) from clean_cases where caseno = 3;
 }}}

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