Ticket #187 (closed defect: fixed)

Opened 1 year ago

Last modified 2 months ago

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

Reported by: noho Assigned to: 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 (12.1 kB) - added by noho on 05/25/08 19:32:34.
test3.sql.bz2 (185.3 kB) - added by gudujarlson on 08/11/08 19:19:28.

Change History

05/25/08 19:32:34 changed by noho

  • attachment Ticket_186.zip added.

07/03/08 15:38:40 changed 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.

07/27/08 15:12:14 changed by gudujarlson

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

08/11/08 19:19:28 changed by gudujarlson

  • attachment test3.sql.bz2 added.

08/11/08 19:20:52 changed 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

01/12/09 20:50:37 changed by pramsey

  • version set to 3.0.0.
  • milestone set to 3.2.0.

03/18/09 11:00:38 changed 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.

03/19/09 05:52:23 changed by HakTom

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

05/08/09 04:53:39 changed 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.

05/08/09 05:15:21 changed 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.