[postgis-devel] PostGIS Release Candidate 5

Michael Fuhr mike at fuhr.org
Fri Aug 10 07:14:52 PDT 2007


On Thu, Aug 09, 2007 at 10:05:25AM -0700, Mark Leslie wrote:
> Alright, the byte ordering issue should be gone for this RC.
> http://postgis.refractions.net/postgis-1.3.0RC5.tar.gz
> Michael and Mark, could you run the tests again and see if there's
> anything more I've missed?

All regression tests pass on my various platforms:

FreeBSD 6.2, x86 32-bit, PostgreSQL 8.2.4
Linux RHEL AS 4, x86 64-bit, PostgreSQL 8.1.9, 8.2.4, 8.3devel
Solaris 9, sparc 32-bit, PostgreSQL 8.0.13, 8.1.9, 8.2.4, 8.3devel
Solaris 9, sparc 64-bit, PostgreSQL 8.2.4, 8.3devel

The HTML documentation build fails:

postgis-out.xml:5899: parser error : Opening and ending tag mismatch: sect3 line 5892 and para
          functions and some processing functions.</para>

Here's the bug in doc/postgis.xml:

5898           <para>Added ST_DWithin relational function.</para>
5899           functions and some processing functions.</para>

On the FreeBSD and Solaris boxes (x86 32-bit, sparc 32- and 64-bit)
but not on the Linux box (x86 64-bit) I still get the st_union crash
I mentioned last week:

http://postgis.refractions.net/pipermail/postgis-devel/2007-August/002717.html

On FreeBSD the backend crashes with a SIGSEGV but on Solaris it
crashes with a SIGABRT and in the PostgreSQL logs I see the following
assertion:

Assertion failed: a, file STRtree.cpp, line 41

Here's the GEOS function yComparator() in source/index/strtree/STRtree.cpp:

39 static bool yComparator(Boundable *a, Boundable *b)
40 {
41         assert(a);
42         assert(b);
43         const void* aBounds = a->getBounds();
44         const void* bBounds = b->getBounds();

The FreeBSD stack trace shows SIGSEGV at line 43 but Solaris shows
an assertion failure on line 41.  The first argument to yComparator
is indeed NULL on Solaris:

#3  0xfec32af0 in yComparator (a=0x0, b=0x44a7f8) at STRtree.cpp:41

The first argument is set on FreeBSD but apparently to a bad value:

#0  0x2db512da in yComparator (a=0x40220000, b=0x840f4c0) at STRtree.cpp:43
...
(gdb) p *a
Cannot access memory at address 0x40220000
(gdb) p *b
warning: RTTI symbol not found for class 'geos::index::strtree::ItemBoundable'
$3 = {_vptr$Boundable = 0x2dbae778}

All platforms are using GEOS 3.0.0rc4 built from source; as far as
I recall they're all from the same SVN revision (1996).  I'll have
to investigate further to see if the bug is in GEOS or PostGIS.

-- 
Michael Fuhr



More information about the postgis-devel mailing list