[postgis-devel] Segfault when doing intersections (BUG)
Mark Cave-Ayland
mark.cave-ayland at siriusit.co.uk
Tue Nov 17 07:30:41 PST 2009
w s wrote:
> Hi all,
>
> Summary: when doing intersections, I occasionally get a failed backend.
>
> I am having an intermittent segfault using the st_ intersection() on
> some big polygons. I will post more as I have more time, but I think I
> can give enough info here to be a useful start.
>
> I don't have a big enough machine or enough time to rebuild with all the
> debug stuff enabled and keep log files, at least in the next week. With
> some guidance, though, I would happily try to get a core or a gdb dump
> or whatever would help. I built postgis with debug enabled and ran out
> of disk space...., so I went back to the regular.
>
> Note: I am getting errors when using proprietary data that I have
> shp2pgsql'ed, so I can't provide that. The data is census tracts and
> zipcodes for two states, along with associated data for populations.
>
> I have attached a script that runs a sql script over and over again
> until I get a failure. I also attached the SQL script. It always
> happens on the CREATE TABLE near the end.
>
> Log output:
> pgsql[0]$ LOG: database system was shut down at 2009-11-15 12:44:59 PST
> LOG: database system is ready to accept connections
> LOG: autovacuum launcher started
> LOG: server process (PID 29206) was terminated by signal 11:
> Segmentation fault
> LOG: terminating any other active server processes
> WARNING: terminating connection because of crash of another server process
> DETAIL: The postmaster has commanded this server process to roll back
> the current transaction and exit, because another server process exited
> abnormally and possibly corrupted shared memory.
> HINT: In a moment you should be able to reconnect to the database and
> repeat your command.
> LOG: all server processes terminated; reinitializing
> LOG: database system was interrupted; last known up at 2009-11-15
> 12:45:46 PST
> LOG: database system was not properly shut down; automatic recovery in
> progress
> LOG: redo starts at 1/6BE203D4
> LOG: unexpected pageaddr 1/657BC000 in log file 1, segment 108, offset
> 8110080
> LOG: redo done at 1/6C7BBFB0
> LOG: database system is ready to accept connections
> LOG: autovacuum launcher started
>
> SQL statement at which point we died:
>
> create table crosswalk as
> select a.id <http://a.id> as zip, b.id <http://b.id> as
> tractfips, 0.0 as area, 0.0 as propzip, 0.0 as proptract,
> st_intersection(a.the_geom, b.the_geom)
> as the_geom, a.the_geom as zip_geom, b.the_geom as tract_geom
> from orwa_zp a , orwa_tr b
> where st_intersects(a.the_geom, b.the_geom);
>
> wsprague=# select * from postgis_full_version()
> wsprague-# ;
>
> postgis_full_version
> ----------------------------------------------------------------------------------------
> POSTGIS="1.4.0" GEOS="3.1.1-CAPI-1.6.0" PROJ="Rel. 4.7.1, 23 September
> 2009" USE_STATS
> (1 row)
>
>
> wsprague=# select * from version();
>
> version
> -------------------------------------------------------------------------------------------------------------------------------------------------
> PostgreSQL 8.4.1 on i386-apple-darwin8.11.1, compiled by GCC
> i686-apple-darwin8-gcc-4.0.1 (GCC) 4.0.1 (Apple Computer, Inc. build
> 5367), 32-bit
> (1 row)
Hi Webb,
I've been meaning to add some notes to the wiki regarding getting a
backtrace from gdb when PostGIS/PostgreSQL crashes for a while. Can you
take a look at
http://trac.osgeo.org/postgis/wiki/DevWikiGettingABackTrace and see if
that is detailed enough for you to get the required information?
ATB,
Mark.
--
Mark Cave-Ayland - Senior Technical Architect
PostgreSQL - PostGIS
Sirius Corporation plc - control through freedom
http://www.siriusit.co.uk
t: +44 870 608 0063
Sirius Labs: http://www.siriusit.co.uk/labs
More information about the postgis-devel
mailing list