[postgis-users] PostGIS porting to Solaris

Don Drake dondrake at gmail.com
Mon Mar 28 12:58:53 PST 2005


We've developed a product using PostGIS 0.8.2 using Linux.   We're
porting it to Solaris and have run into a problem with the DB crashing
on simple spatial queries.

Here's the query that crashes on Solaris (but not on Linux):
select  centroid(GeometryFromText('POLYGON((-86.9671883390996
41.2752652196155,-86.9642032882465 41.2752651809174,-86.9612182374049
41.275265064823,-86.9612184425768 41.2730131125765,-86.9612186477253
41.270761159446,-86.9642034934066 41.2707612755221,-86.9671883390996
41.2707613142141,-86.9671883390996 41.2730132673567,-86.9671883390996
41.2752652196155))', 4326));

I'm running Solaris 9, gcc 3.4.2, postgis 0.8.2, Geo 1.0, Proj 4.4.8,
Postgres 7.4.6.


geo=# select postgis_version();
            postgis_version            
---------------------------------------
 0.8 USE_GEOS=1 USE_PROJ=1 USE_STATS=1
(1 row)

Here's what I see in the logs:

2005-03-28 14:51:40 LOG:  00000: statement: select 
centroid(GeometryFromText('POLYGON((-86.9671883390996
41.2752652196155,-86.964203288246
5 41.2752651809174,-86.9612182374049 41.275265064823,-86.9612184425768
41.2730131125765,-86.9612186477253 41.270761159446,-86.9642034934066
 41.2707612755221,-86.9671883390996 41.2707613142141,-86.9671883390996
41.2730132673567,-86.9671883390996 41.2752652196155))', 4326))
LOCATION:  pg_parse_query, postgres.c:464
2005-03-28 14:51:40 DEBUG:  00000: PortalRun
LOCATION:  PortalRun, pquery.c:412
2005-03-28 14:51:51 DEBUG:  00000: forked new backend, pid=14327 socket=9
LOCATION:  BackendStartup, postmaster.c:2235
2005-03-28 14:51:51 DEBUG:  00000: reaping dead processes
LOCATION:  reaper, postmaster.c:1819
2005-03-28 14:51:51 DEBUG:  00000: child process (PID 14317) was
terminated by signal 11
LOCATION:  LogChildExit, postmaster.c:2087
2005-03-28 14:51:51 LOG:  00000: server process (PID 14317) was
terminated by signal 11
LOCATION:  LogChildExit, postmaster.c:2087
2005-03-28 14:51:51 LOG:  00000: terminating any other active server processes
LOCATION:  CleanupProc, postmaster.c:2008
2005-03-28 14:51:51 DEBUG:  00000: sending SIGQUIT to process 14327
LOCATION:  CleanupProc, postmaster.c:2032
2005-03-28 14:51:51 DEBUG:  00000: reaping dead processes
LOCATION:  reaper, postmaster.c:1819
2005-03-28 14:51:51 DEBUG:  00000: child process (PID 14327) exited
with exit code 0
LOCATION:  LogChildExit, postmaster.c:2078
2005-03-28 14:51:51 LOG:  00000: all server processes terminated; reinitializing
LOCATION:  reaper, postmaster.c:1920
2005-03-28 14:51:51 DEBUG:  00000: shmem_exit(0)
LOCATION:  shmem_exit, ipc.c:126
2005-03-28 14:51:51 DEBUG:  00000: invoking IpcMemoryCreate(size=274382848)
LOCATION:  CreateSharedMemoryAndSemaphores, ipci.c:73
2005-03-28 14:51:52 LOG:  00000: database system was interrupted at
2005-03-28 14:51:19 CST
LOCATION:  StartupXLOG, xlog.c:2610
2005-03-28 14:51:52 LOG:  00000: checkpoint record is at 3/44C22378
LOCATION:  StartupXLOG, xlog.c:2628
2005-03-28 14:51:52 LOG:  00000: redo record is at 3/44C22378; undo
record is at 0/0; shutdown TRUE
LOCATION:  StartupXLOG, xlog.c:2653
2005-03-28 14:51:52 LOG:  00000: next transaction ID: 10171; next OID: 43061793
LOCATION:  StartupXLOG, xlog.c:2656
2005-03-28 14:51:52 LOG:  00000: database system was not properly shut
down; automatic recovery in progress
LOCATION:  StartupXLOG, xlog.c:2705
2005-03-28 14:51:52 LOG:  00000: record with zero length at 3/44C223B8
LOCATION:  ReadRecord, xlog.c:1900
2005-03-28 14:51:52 LOG:  00000: redo is not required
LOCATION:  StartupXLOG, xlog.c:2771
2005-03-28 14:51:54 LOG:  00000: database system is ready


I trussed the postgres server, and here's the output:

14317:  brk(0x00340BD8)                                 = 0
14317:  brk(0x00342BD8)                                 = 0
14317:  brk(0x00342BD8)                                 = 0
14317:  brk(0x00344BD8)                                 = 0
14317:  stat64("/usr/local/pgsql/lib/libpostgis.so.0.8", 0xFFBFCD70) = 0
14317:  time()                                          = 1112043100
14317:  write(2, " 2 0 0 5 - 0 3 - 2 8   1".., 20)      = 20
14317:  write(2, " D E B U G :     0 0 0 0".., 60)      = 60
14317:  brk(0x00344BD8)                                 = 0
14317:  brk(0x00346BD8)                                 = 0
14317:  stat64("/usr/local/pgsql/lib/libpostgis.so.0.8", 0xFFBFD260) = 0
14317:      Incurred fault #6, FLTBOUNDS  %pc = 0xFED4C73C
14317:        siginfo: SIGSEGV SEGV_MAPERR addr=0x00000000
14317:      Received signal #11, SIGSEGV [default]
14317:        siginfo: SIGSEGV SEGV_MAPERR addr=0x00000000

-Don


-- 
Donald Drake
President
Drake Consulting
http://www.drakeconsult.com/
http://www.MailLaunder.com/
http://www.mobilemeridian.com/
312-560-1574



More information about the postgis-users mailing list