Ticket #187 (closed defect: fixed)

Opened 4 years ago

Last modified 3 years ago

ST_Buffer crashes on WinXP, PostgreSQL 8.3, PostGIS 1.3.3, GEOS 3.0.0-CAPI-1.4.1

Reported by: noho Owned by: strk
Priority: blocker Milestone: 3.2.0
Component: Build/Install Version: 3.0.0
Severity: Unassigned Keywords:
Cc:

Description

I loaded data with FME from ArcSDE 9.2 to Postgis 1.3.3 ST_IsValid reports some invalid data, so I created a separate table with the invalid geometries. So far so good. If I try to fix the geometries with a 0 meter Buffer, PostGIS Crashes.

create table table_repaired as select farm_id,st_buffer(geom,0) as geom from table

attached are the pg_log and a screenshot of the assertion, the wkb_geom is too big to upload as an attachment. (1.1MB zipped)

I am using PostgreSQL 8.3 on WinXP and Postgis 1.3.3 from stackbuilder: "POSTGIS="1.3.3" GEOS="3.0.0-CAPI-1.4.1" PROJ="Rel. 4.6.0, 21 Dec 2007" USE_STATS"

I do not experience the assertion on WinXP, PostgreSQL 8.2.3, Postgis 1.3.2 "POSTGIS="1.3.2" GEOS="3.0.0rc4-CAPI-1.3.3" PROJ="Rel. 4.5.0, 22 Oct 2006" USE_STATS"

Attachments

Ticket_186.zip Download (12.1 KB) - added by noho 4 years ago.
test3.sql.bz2 Download (185.3 KB) - added by gudujarlson 3 years ago.

Change History

Changed 4 years ago by noho

Changed 4 years ago by gudujarlson

I have run into this bug myself with the same configuration. If I change the tolerance to 0.5, I do not experience the assertion failure, however the postgres.exe process consumes RAM until my machine begins to thrash and I have to reboot it. My machine has 3 GB of RAM.

Changed 4 years ago by gudujarlson

Is there a work-around for this problem? It is a showstopper for me at the moment.

Changed 3 years ago by gudujarlson

Changed 3 years ago by gudujarlson

I have attached a dump file that contains a geometry that also exhibits this behavior. To crash PostGIS 1.3.3 run the following after loading the data:

select buffer(the_geom,0) from test3

Changed 3 years ago by pramsey

  • version set to 3.0.0
  • milestone set to 3.2.0

Changed 3 years ago by HakTom

  • priority changed from major to blocker

if have the same problem here on debian lenny with Postgres 8.1, POSTGIS="1.3.5" GEOS="3.0.0-CAPI-1.4.1", same effect as gudujarlson.

postgres crashes with the same message as bug #219 reported, so this seems to be a duplicate.

is there any known workarround, because this is a critical one.

Changed 3 years ago by HakTom

cleaning my Polygons with cleanPolygon ( see  http://postgis.refractions.net/support/wiki/index.php?CleanPolygons ) circumvented the problem.

Changed 3 years ago by strk

  • owner set to strk
  • status changed from new to assigned

Still happening as of r2492 (later then 3.1.0). I'm on it.

Changed 3 years ago by strk

  • status changed from assigned to closed
  • resolution set to fixed

I take it back, was confused by wrong linking. The crash is indeed fixed. Only, when you attempt to buffer the source (which is invalid) the buffer operation keeps failing and reducing precision till it succeeds with a precision of 1/10 unit, which is pretty useless as a result (bounding box of the input has an area of 3 units..).

Anyway, crash fixed, so this bug is closed.

Note: See TracTickets for help on using tickets.