[postgis-devel] Still problems on Ultrasparc with 1.0.5/8.1.0

Alex Mayrhofer axelm-postgis at nona.net
Sun Nov 27 13:11:56 PST 2005


Hi,

unfortunately, i'm still experiencing problems with PostGIS 1.0.5 on 
Sparc/Linux (Linux with 32bit userland9. I'm trying to insert a medium sized 
LINESTRING geometry into a table:

- When performing the query on a "freshly started" server, it works just 
exactly once:

terrasketch=# \i machhin
INSERT 0 1

["machhin" probably just makes sense to people speaking german, btw.]

First few lines of "machhin":

--- snip ---
INSERT INTO upload_features (user_id, gpx_id, feature_type, geom_line, 
geom_point, geom_hash, feature_name) VALUES ('28', NULL, 1, 
GeomFromEWKT('SRID=4326;LINESTRING(16.358552 48.179637 241.908936 0, 
16.358688 48.179683 198.649536 0, 16.358746 48.179721 215.953247 0, 
16.358930 48.179645 218.356567 0, 16.358927 48.179629 220.279175 0, 
16.358928 48.179619 219.798584 0, 16.358844 48.179512 218.356567 0, 
16.358479 48.179115 218.356567 0, 16.357991 48.178605 218.837280 0,
--- snip ---

- When i re-try the query, PostGIS seems to request unreasonable amounts of 
memory (which initially could not be satisfied on my test box):

terrasketch=# \i machhin
psql:machhin:1: ERROR:  out of memory
DETAIL:  Failed on request of size 1040187400.
terrasketch=# \i machhin
psql:machhin:1: ERROR:  out of memory
DETAIL:  Failed on request of size 1065320328.
terrasketch=# \i machhin
psql:machhin:1: ERROR:  out of memory
DETAIL:  Failed on request of size 1065320328.
terrasketch=# \i machhin
psql:machhin:1: ERROR:  out of memory
DETAIL:  Failed on request of size 1065320328.

[quitting, starting psql again]

terrasketch=# \i machhin
psql:machhin:1: ERROR:  out of memory
DETAIL:  Failed on request of size 1040187400.
terrasketch=# \i machhin
psql:machhin:1: ERROR:  out of memory
DETAIL:  Failed on request of size 1065320328.
terrasketch=# \i machhin
psql:machhin:1: ERROR:  out of memory
DETAIL:  Failed on request of size 1065320328.

(i've seen so far only those two request sizes on my test box)

- However, when i add enough swap so that the memory request can be 
fulfilled, the respective postmaster crashes with the following backtrace:

Program received signal SIGSEGV, Segmentation fault.
0x704286c0 in memcpy () from /lib/libc.so.6
(gdb) bt
#0  0x704286c0 in memcpy () from /lib/libc.so.6
#1  0x000403f4 in heap_fill_tuple ()
#2  0x00042884 in index_form_tuple ()
#3  0x0006d774 in btinsert ()
#4  0x0023d3dc in FunctionCall6 ()
#5  0x0006543c in index_insert ()
#6  0x00122bb8 in ExecInsertIndexTuples ()
#7  0x00119f34 in ExecEndPlan ()
#8  0x00119b6c in ExecEndPlan ()
#9  0x00118a3c in ExecutorRun ()
#10 0x001ba818 in FreeQueryDesc ()
#11 0x001bbbc0 in PortalRun ()
#12 0x001bb36c in PortalRun ()
#13 0x001b6880 in pg_plan_queries ()
#14 0x001b98bc in PostgresMain ()
#15 0x00189624 in ClosePostmasterPorts ()
#16 0x00188e0c in ClosePostmasterPorts ()
#17 0x00186df8 in PostmasterMain ()
#18 0x001863f0 in PostmasterMain ()
#19 0x0013dab8 in main ()
(gdb)

More details about the installation:

terrasketch=# select postgis_full_version();
                                          postgis_full_version 

------------------------------------------------------------------------------------------------------
  POSTGIS="1.0.5" GEOS="2.1.1" PROJ="Rel. 4.4.9, 29 Oct 2004" USE_STATS 
DBPROC="0.3.0" RELPROC="0.3.0"
(1 row)

(I know that GEOS is outdated, but i don't think this is relevant for this 
query)?

My suspicion is that the variable where PostGIS keeps it's desired memory 
request size is zeroed on the first query, but is not properly initialized 
on the second query... probably an Ultrasparc alignment/variable size problem?

During compilation, two warnings are issued - i'm unsure if they are related:

ptarray.c: In function `ptarray_segmentize2d':
ptarray.c:222: warning: dereferencing type-punned pointer will break 
strict-aliasing rules
ptarray.c:222: warning: dereferencing type-punned pointer will break 
strict-aliasing rules


How can i help tracking this one down? I'm happy to provide query string, 
table definitions as well as debugging time since this is pretty much a show 
stopper for me now. Additionally, i've now access to a dedicated test box 
which should ease debugging.

thanks & cheers

Alex



More information about the postgis-devel mailing list