[postgis-users] PostGIS porting to Solaris
Paul Ramsey
pramsey at refractions.net
Mon Mar 28 13:04:27 PST 2005
Don,
I am sure there are a number of latent memory alignment issues hanging
around the code base. The world just is not as full of big-endiean 64
bit machines as it is of little endian 32 bit ones, so testing is low.
Anyways, you are using a very old postgis. You should be able to use the
latest 0.9 without any changes to your system.
And you should definitely consider trying out 1.0, since that is where
all development effort is going to be.
Yours,
Paul
Don Drake wrote:
> 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
>
>
More information about the postgis-users
mailing list