[postgis-devel] different EWKB representations on different
machines?
Alex Mayrhofer
axelm-postgis at nona.net
Wed Nov 9 15:59:35 PST 2005
All,
i'm currently investigating severe problems with PostGIS (postmaster
crashes, bus errors, etc) which only seem to occur on the sparc architecture
[i'm suspecting some alignment errors]. During tests, i found out that the
same geometry on three different machines/architectures, two with PostGIS
1.0.0, one with 1.0.0RC1, yields three different EWKB formats.
Question: Shouldn't the EWKB representations be equal on all three machines?
details follow:
----
box #1 (Debian sarge, PowerPC):
testdb=# select asewkb(geomfromewkt('SRID=-1;POINT(1 1)'));
asewkb
--------------------------------------------------------------------------------
\377\001\000\000\000\000\000\000\000\000\000\360?\000\000\000\000\000\000\360?
(1 row)
testdb=# select version();
version
------------------------------------------------------------------------------------------------------------------
PostgreSQL 7.4.7 on powerpc-unknown-linux-gnu, compiled by GCC
powerpc-linux-gcc (GCC) 3.3.5 (Debian 1:3.3.5-12)
(1 row)
testdb=# select postgis_full_version();
postgis_full_version
--------------------------------------------------------------------------------------------
POSTGIS="1.0.0RC1" PROJ="Rel. 4.4.9, 29 Oct 2004" USE_STATS DBPROC="0.1.0"
RELPROC="0.1.0"
(1 row)
------
box #2 (intel i386, Debian sarge)
testdb=# select asewkb(geomfromewkt('SRID=-1;POINT(1 1)'));
asewkb
--------------------------------------------------------------------------------
\001\001\000\000\000\000\000\000\000\000\000\360?\000\000\000\000\000\000\360?
(1 row)
testdb=# select version();
version
-------------------------------------------------------------------------------------------
PostgreSQL 8.1.0 on i386-pc-linux-gnu, compiled by GCC cc (GCC) 3.3.5
(Debian 1:3.3.5-12)
(1 row)
testdb=# select postgis_full_version();
postgis_full_version
--------------------------------------------------------------------------------------------
POSTGIS="1.0.4" GEOS="2.1.3" PROJ="Rel. 4.4.9, 29 Oct 2004" DBPROC="0.3.0"
RELPROC="0.3.0"
(1 row)
testdb=#
----
Box #3 (Ultrasparc, Debian sarge, userland in 32bit)
testdb=# select asewkb(geomfromewkt('SRID=-1;POINT(1 1)'));
asewkb
--------------------------------------------------------------------------------
\000\000\000\000\001?\360\000\000\000\000\000\000?\360\000\000\000\000\000\000
(1 row)
testdb=# select version();
version
----------------------------------------------------------------------------------------------------
PostgreSQL 8.1beta2 on sparc-unknown-linux-gnu, compiled by GCC cc (GCC)
3.3.5 (Debian 1:3.3.5-13)
(1 row)
testdb=# select postgis_full_version();
postgis_full_version
--------------------------------------------------------------------------------------------
POSTGIS="1.0.4" GEOS="2.1.3" PROJ="Rel. 4.4.9, 29 Oct 2004" DBPROC="0.3.0"
RELPROC="0.3.0"
(1 row)
The "real problem" is that a great percentage of postgis related operations
on the Ultrasparc machine either yield weird error messages, or leads to a
bus error of the postmaster. I'm currently recompiling PostgreSQL with
--enable-cassert, but since Postgres regression went fine, i'd suspect the
problem to be somewhere in the postgis code. More news as we get it.
any comments on this?
cheers
alex