I've encountered a problem where the PostgreSQL database crashes when attempting to load pltcl.so on Mac OS 10.3. PostgreSQL fails because memory cannot be allocated during a shmget call. Here is the exact error message:

FATAL: could not create shared memory segment: Cannot allocate memory
DETAIL: Failed system call was shmget(key=5432001, size=3809280, 03600).
HINT: This error usually means that PostgreSQL's request for a shared memory segment exceeded available memory or swap space. To reduce the request size (currently 3809280 bytes), reduce PostgreSQL's shared_buffers parameter (currently 300) and/or its max_connections parameter (currently 50).
The PostgreSQL documentation contains more information about shared memory configuration.



Here's the code that triggers it:


create function pltcl_call_handler() RETURNS LANGUAGE_HANDLER
   as 'pltcl.so' language 'c';


I have 1GB of memory and very little running on the powerbook (I rebooted just to be sure I started with a clean system).


Not sure whether this is a PostgreSQL problem or a Mac OS 10.3 problem, but I can load plpgsql.so right before loading pltcl.so and it still only fails on the pltcl.so load. Commenting out the plpgsql.so load and trying again it still fails on the pltcl.so load. I'm compiling against a locally compiled version of Tcl 8.4.4. Here are the configure settings:

./configure \
    --prefix=$INSTALL/postgresql \
    --with-tcl \
    --with-tclconfig=$INSTALL/tcl/lib \
    --with-includes=$INSTALL/tcl/include:$INSTALL/readline/include \
    --with-libraries=$INSTALL/readline/lib \
    --without-tk \
    --without-openssl


thanks,


/s.


---------------------------(end of broadcast)--------------------------- TIP 6: Have you searched our list archives?

http://archives.postgresql.org

Reply via email to