Opened 10 years ago

Closed 10 years ago

#468 closed defect (worksforme)

Geometry breaks valid() and buffer(): "Assertion failed: (0), function query, file AbstractSTRtree.cpp, line 286"

Reported by: chdemars Owned by: strk
Priority: major Milestone: 3.3.1
Component: Core Version: 3.3.0
Severity: Unassigned Keywords:
Cc:

Description

GEOS is pretty far down in the software stack I'm using, but it looks like my program stopping error lies there.

Software being used: geos-config --version 3.3.0 I'm using GeoDjango? and PostGIS on top of GEOS with development taking place on Mac OSX

Geometry source: original source is: http://www.water.ca.gov/landwateruse/docs/landusedata/shapes/04bu.zip

After loading that (and the other DWR land use files) into my PostGIS/GeoDjango database I extracted all the water features using: water = DWRlanduse.objects.filter(class1contains='NW', survey_areacontains='BUTTE COUNTY').collect()

I have attached the wkb and wkt output of the above with water1 using .unionagg() and water2 using .collect() to produce a MultiPolygon? and GeometryCollection? respectively. Both produce failure.

If I try to use .buffer() or .valid() functions on either water1 or water2 I get the same failure: Assertion failed: (0), function query, file AbstractSTRtree.cpp, line 286 which says one of the 'childBoundables' is of an unsupported type. Functions like area or centroid work fine.

I would like to know if the error is a problem with GEOS and/or a problem with the geometry. Regardless of the source of error, I would also like to know how to go about fixing it.

Thank you for your time and efforts, --Christopher

Attachments (3)

fubargeom.wkb (566 bytes) - added by chdemars 10 years ago.
WKB of a multipolygon that causes the crash
fubargeom.wkt (1.7 KB) - added by chdemars 10 years ago.
WKT of the same multipolygon
bug468.xml (1.9 KB) - added by strk 10 years ago.

Download all attachments as: .zip

Change History (9)

comment:1 Changed 10 years ago by chdemars

I can't upload the sample file because it is over the 286k upload limit (1-2MB for wkb and 5-6MB for wkt, 7.8 for the four files zipped).

Is there someone I can email the files to or can the upload limit be increased?

Thank you, --Christopher

Changed 10 years ago by chdemars

Attachment: fubargeom.wkb added

WKB of a multipolygon that causes the crash

Changed 10 years ago by chdemars

Attachment: fubargeom.wkt added

WKT of the same multipolygon

comment:2 Changed 10 years ago by chdemars

I isolated a multipolygon that causes the afore mentioned crash and uploaded it in wkb and wkt form. I'm not sure if it is the only multipolygon in the set causing issue or not.

comment:3 Changed 10 years ago by strk

Can you updload the WKB in hex form ?

comment:4 Changed 10 years ago by strk

Or, does the problem persist if you parse the WKT and go on from there ? The attached XML (with WKT form) shows no problem in isValid operation at the C++ level. You can substitute the WKT with HEXWKB in the testcase to try it out that way. You pass the XML file to XMLTester (under tests/xmltester of GEOS source tree).

Changed 10 years ago by strk

Attachment: bug468.xml added

comment:5 Changed 10 years ago by strk

chdemars: do you confirm it was a bad build on your side ?

comment:6 Changed 10 years ago by strk

Resolution: worksforme
Status: newclosed

Closing for lack of response and impossibility to reproduce.

Note: See TracTickets for help on using tickets.