[postgis-users] Backend crashes when collect()ing Box3ds

strk at refractions.net strk at refractions.net
Wed Oct 6 00:31:35 PDT 2004


Ron, 0.8 is not maintaned anymore.
Should try 0.9.0 or pgis_0_9_0 CVS branch.
The && problem is not a bug, it's a 2d-only operation.
The intersets() seems a bug, what GEOS version are you using ?
(GEOS-2.0.1 is out).
For the collect() case I bet it's an OutOfMemory condition, often
overlooked. Postgis-1.0 will have a memory management layer, that
would help in this cases. 
The ordering operator is a missing btree operator class needed
for postgresql >= 74. Can't remember which postgis version introduced
it for geometry, BOX3D=>GEOMETRY cast is implicit so that should do.

--strk;

On Tue, Oct 05, 2004 at 10:55:23PM -0700, Ron Mayer wrote:
> 
> If this mailinglist isn't the right place for such postings, let me know 
> and I'll go elsewhere.
> 
> 
> If I memcollect() or collect() BOX3Ds, sometimes I get a reasonable error 
> message, but sometimes I get a crashed backend.  I know I shouldn't be 
> doing this (collect()ing the envelope() is what I really wanted), but a 
> crashed backend wasn't what I expected either, so I thought I'd mention 
> it.
> 
> 
> 
> On SuSE 9, Postgresql 7.4.3, Postgis 0.8  
>   I get the "server closed the connection unexpectedly", and
> On Windows 2000, Postgresql 8.0.0.beta2, Postgis 0.8.2
>   I get a hung psql client and apparently the backend vanished
>   but I get no error message.
> 
> 
> The easiest testcase I can come up with that shows the crash is
>   select state,memcollect(bb) from (
>       select state,box3d(the_geom)::box3d as bb
>         from statesp020
>        where state='California'
>   ) as a group by state;
> with the statesp020 table coming from this shapefile:
>  http://edcftp.cr.usgs.gov/pub/data/nationalatlas/statesp020.tar.gz
> 
> 
> 
> Below are the results of a few such memcollect()s and
> 
> fl=# select memcollect(bb) from (select 'BOX3D(0 0, 1 1)'::box3d as bb) as a;
>          memcollect
> ----------------------------
>  SRID=-1;BOX3D(0 0 0,1 1 0)
> (1 row)
> 
> fl=# select memcollect(bb) from (select 'BOX3D(0 0, 1 1)'::box3d as bb union select 'BOX3D(1 0, 1 1)'::box3d as bb) as a;
> ERROR:  could not identify an ordering operator for type box3d
> HINT:  Use an explicit ordering operator or modify the query.
> 
> fl=# select state,memcollect(bb) from (select state,box3d(the_geom)::box3d as bb from statesp020 where state='California') as a group by state;
> server closed the connection unexpectedly
>         This probably means the server terminated abnormally
>         before or while processing the request.
> The connection to the server was lost. Attempting reset: Failed.
> !>
> 
> 
> > ########## more version info ###########
> > fl=# -- [on the windows machine]
> > fl=# select name,setting,postgis_full_version() from pg_settings where name = 'server_version';
> >       name      |  setting   |                                        postgis_full_version                                         
> > ----------------+------------+-----------------------------------------------------------------------------------------------------
> >  server_version | 8.0.0beta2 | POSTGIS="0.8.2" GEOS="2.0.0" PROJ="Rel. 4.4.8, 3 May 2004" USE_STATS DBPROC="0.0.1" RELPROC="0.0.1"
> > (1 row)
> > 
> > fl=# -- [on the SuSE machine (postgis_full_version doesn't exist)]
> > fl=#  select name,setting,postgis_version() from pg_settings where name = 'server_version';
> >       name      | setting |            postgis_version
> > ----------------+---------+---------------------------------------
> >  server_version | 7.4.3   | 0.8 USE_GEOS=1 USE_PROJ=1 USE_STATS=1
> _______________________________________________
> postgis-users mailing list
> postgis-users at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-users



More information about the postgis-users mailing list