[postgis-devel] [PostGIS] #210: segmentation faults in lwgeom_geos.c:pgis_union_geometry_array

PostGIS trac at osgeo.org
Wed Jun 24 11:01:09 PDT 2009


#210: segmentation faults in lwgeom_geos.c:pgis_union_geometry_array
------------------------+---------------------------------------------------
  Reporter:  dfuhriman  |       Owner:  pramsey      
      Type:  defect     |      Status:  new          
  Priority:  medium     |   Milestone:  postgis 1.3.7
 Component:  postgis    |     Version:  trunk        
Resolution:             |    Keywords:               
------------------------+---------------------------------------------------
Comment (by dfuhriman):

 Hmm... the SRID -1 is something I saw, too, but couldn't quite figure out,
 and like you said, doesn't seem to happen consistently. What really
 strange to me is that sqft_of is being called at all, since it is defined
 as STRICT and the Intersection on B1 or the Union on B2 do not intersect.

 I *think* it's because tranform() was operating on a NULL geometry, unless
 for some reason union or intersect were returning something with the wrong
 SRID, which seems unlikely.  Unless there's something magic about being
 called from within a coalesce.

 I started simplifying things a bit, and now it seems to only happen on
 about every third call. When it *does* succeed, the result of
 st_numgeometries() is NULL (which is what I would expect).

 Here's the call I'm using:
 {{{
           SELECT T1.gid as gid,
                  st_numgeometries(ST_Union(B2.the_geom)) as sqft
             INTO TABLE example
             FROM test.T1 as T1
                   LEFT OUTER JOIN test.B2 as B2 on
 (st_within(B2.the_geom_centroids,T1.the_geom))
                   where T1.gid = 1
                  GROUP by T1.gid;

 }}}

 Successful calls show this in the log:

 {{{
 NOTICE:  [lwgeom_gist.c:LWGEOM_overlap:126] GIST: lwgeom_overlap:
 (-122.687775 45.531441, -122.687767 45.531441) (-122.667847 45.497169
 -122.661789 45.497169) = 0
 NOTICE:  [lwgeom_geos.c:pgis_union_geometry_array:119] GEOS incremental
 union (call 2)
 NOTICE:  [lwgeom_geos.c:pgis_union_geometry_array:131] unite_garray:
 number of elements: 1
 NOTICE:  [lwgeom_api.c:lwgeom_getType:853] lwgeom_getType 0
 SELECT
 }}}

 Unsuccessful attempts show the same error as the previous log.

 I maybe able to attach a debugger to the server process and see what I can
 see, though my profound lack of knowledge on the codebase may make that
 somewhat less useful. :)

-- 
Ticket URL: <http://trac.osgeo.org/postgis/ticket/210#comment:5>
PostGIS <http://trac.osgeo.org/postgis/>
PostGIS


More information about the postgis-devel mailing list