[postgis-users] PostGIS, 64 bit Solaris, Invalide memory alloc message using force_collection

strk at refractions.net strk at refractions.net
Tue Jan 31 02:52:04 PST 2006


If this is with 1.1.1 please file a bug report, so I will
have a reminder. Thank you.

--strk;

On Mon, Jan 30, 2006 at 01:52:36PM -0700, Erik Persson wrote:
> Hi all,
> 
> I am wondering if anyone has experience running PostGIS on a 64 bit  
> version of Solaris running on the Sparc architecture.  The error  
> described below occurred when compiled as 64 bit.  A quick test on a  
> 32 bit Sparc machine indicates that the problem does not exist there.
> 
> I recently installed postgis on a solaris machine and a mapserver  
> query to postgis that has been working fine on OS X and linux  
> suddenly failed with an 'invalid memory alloc' error.  I have reduced  
> the error down to a the force_collection function.  I have down-reved  
> to PostgreSQL 8.1.1 and postgis 1.1.0 and experience the same problem.
> 
> If I make a simple table with a single point column force collection  
> works fine.  If I add a second row I get a huge amount of output  
> (with the memory alloc error appearing sporadically), about 45MB of  
> data for a 2 points of dim 2 in a single column in a table with two  
> rows!  I have done the test with POINTS of dim 2 and 3 with similar  
> results.  The requested memory size appears to be the same, but at  
> the moment I can't confirm that %100.
> 
> If I use the LIMIT directive, I seem to get the error regardless of  
> the number of rows, but given the sporadic nature of the problem with  
> two rows of data in the table I can't be 100% of the  
> reproducibility.  If I select a single row using an id column it  
> works fine.
> 
> As you can see below, it is a 64 bit architecture compiled as 64  
> bit.  All the relevant versions and system information should be  
> contained below.
> 
> Any suggestions?  Known bugs? Known problems on 64 bit architectures,  
> particularly Solaris?  I am happy to instrument code, try  patches,  
> or do other debugging.
> 
> Thanks,
> Erik
> 
> Example of failure:
> pod=# select force_collection(the_point) from foo;
> ERROR:  invalid memory alloc request size 1073741824
> 
> Demonstration that data is valid:
> pod=# select astext(the_point) from foo;
>           astext
> --------------------------
> POINT(-90 45)
> POINT(-149.1323 61.5982)
> (2 rows)
> 
> Test data used:
> pod=# select * from foo;
> id |                 the_point                   
> |                         the_point3
> ----+-------------------------------------------- 
> +------------------------------------------------------------
>   2 | 0000000001C0568000000000004046800000000000 |  
> 0080000001C05680000000000040468000000000000000000000000000
>   1 | 0000000001C062A43BCD35A858404ECC91D14E3BCD |  
> 0080000001C062A43BCD35A858404ECC91D14E3BCD0000000000000000
> (2 rows)
> 
> 
> pod=# select version();
>                                   version
> ------------------------------------------------------------------------ 
> ---
> PostgreSQL 8.1.1 on sparc-sun-solaris2.9, compiled by GCC gcc (GCC)  
> 3.4.3
> (1 row)
> 
> pod=# select postgis_full_version();
>                                postgis_full_version
> ------------------------------------------------------------------------ 
> ----------
> POSTGIS="1.1.1" GEOS="2.2.1-CAPI-1.0.1" PROJ="Rel. 4.4.9, 29 Oct  
> 2004" USE_STATS
> (1 row)
> 
> 
> bash-2.05$ ldd liblwgeom.so
>         libgeos_c.so.1 =>        /usr/local/geos/lib/libgeos_c.so.1
>         libproj.so.0 =>  /usr/local/proj4/lib/libproj.so.0
>         libgcc_s.so.1 =>         /usr/local/gcc/lib/sparcv9/ 
> libgcc_s.so.1
>         libgeos.so.2 =>  /usr/local/geos/lib/libgeos.so.2
>         libstdc++.so.6 =>        /usr/local/gcc-3.4.3-v9/lib/sparcv9/ 
> libstdc++.so.6
>         libm.so.1 =>     /usr/lib/64/libm.so.1
>         libc.so.1 =>     /usr/lib/64/libc.so.1
>         libdl.so.1 =>    /usr/lib/64/libdl.so.1
>         /usr/platform/SUNW,Sun-Fire-V240/lib/sparcv9/libc_psr.so.1
> 
> bash-2.05$ cat /etc/release
>                         Solaris 9 9/05 s9s_u8wos_05 SPARC
> 
> bash-2.05$ uname -a
> SunOS machine 5.9 Generic_118558-11 sun4u sparc SUNW,Sun-Fire-V240
> 
> gcc (GCC) 3.4.3
> 
> _______________________________________________
> postgis-users mailing list
> postgis-users at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-users



More information about the postgis-users mailing list