Thread: Fatal "make check" bug with 8.0 beta 3 under Mac OS 10.3
I just downloaded and compiled PostgreSQL 8.0 beta 3. The directory and files are all owned by the "postgres" user, and I compiled as that user. I configured with: ./configure --prefix=/sw --with-tcl --with-python --with-libs=/sw/lib/ --with-includes=/sw/include/ (/sw is the root of the "fink" hierarchy, analogous in some ways to the traditional /usr/local path.) The "make check" log included the following: creating template1 database in /Users/reuven/Downloads/postgresql-8.0.0beta3/src /test/regress/./tmp_check/data/base/1 ... FATAL: could not create shared memory segment: Cannot allocate memory DETAIL: Failed system call was shmget(key=2, size=1163264, 03600). HINT: This error usually means that PostgreSQL's request for a shared memory se gment exceeded available memory or swap space. To reduce the request size (curre ntly 1163264 bytes), reduce PostgreSQL's shared_buffers parameter (currently 50) and/or its max_connections parameter (currently 10). The PostgreSQL documentation contains more information about shared memo ry configuration. child process exited with exit code 1 initdb: failed initdb: data directory "/Users/reuven/Downloads/postgresql-8.0.0beta3/src/test/r egress/./tmp_check/data" not removed at user's request Reuven
"Reuven M. Lerner" <reuven@lerner.co.il> writes: > /test/regress/./tmp_check/data/base/1 ... FATAL: could not create > shared memory > segment: Cannot allocate memory > DETAIL: Failed system call was shmget(key=2, size=1163264, 03600). OS X has an unreasonably small limit on shared memory size; if you don't raise it (IIRC you can do this in /etc/rc) then you don't get to have more than one postmaster at a time. regards, tom lane
You already have the answer. Of course the solution has been described on the lists a few times. Open the file /etc/rc in pico (don't forget to sudo) ( sudo pico /etc/rc ). scroll down to the system tuning section and change to look like this. # System tuning sysctl -w kern.maxvnodes=$(echo $(sysctl -n hw.physmem) '33554432 / 512 * 1024 +p'|dc) sysctl -w kern.sysv.shmmax=16777216 sysctl -w kern.sysv.shmmin=1 sysctl -w kern.sysv.shmmni=32 sysctl -w kern.sysv.shmseg=8 sysctl -w kern.sysv.shmall=65536 These values work well. I don't know if they are optimal for your system and setup. Ted --- "Reuven M. Lerner" <reuven@lerner.co.il> wrote: > I just downloaded and compiled PostgreSQL 8.0 beta > 3. The directory and > files are all owned by the "postgres" user, and I > compiled as that > user. I configured with: > > ./configure --prefix=/sw --with-tcl --with-python > --with-libs=/sw/lib/ > --with-includes=/sw/include/ > > (/sw is the root of the "fink" hierarchy, analogous > in some ways to the > traditional /usr/local path.) > > The "make check" log included the following: > > creating template1 database in > /Users/reuven/Downloads/postgresql-8.0.0beta3/src > /test/regress/./tmp_check/data/base/1 ... FATAL: > could not create > shared memory > segment: Cannot allocate memory > DETAIL: Failed system call was shmget(key=2, > size=1163264, 03600). > HINT: This error usually means that PostgreSQL's > request for a shared > memory se > gment exceeded available memory or swap space. To > reduce the request > size (curre > ntly 1163264 bytes), reduce PostgreSQL's > shared_buffers parameter > (currently 50) > and/or its max_connections parameter (currently > 10). > The PostgreSQL documentation contains more > information about > shared memo > ry configuration. > child process exited with exit code 1 > initdb: failed > initdb: data directory > "/Users/reuven/Downloads/postgresql-8.0.0beta3/src/test/r > egress/./tmp_check/data" not removed at user's > request > > Reuven > > > ---------------------------(end of > broadcast)--------------------------- > TIP 4: Don't 'kill -9' the postmaster > _______________________________ Do you Yahoo!? Declare Yourself - Register online to vote today! http://vote.yahoo.com
Tom Lane wrote: > OS X has an unreasonably small limit on shared memory size; if you don't > >raise it (IIRC you can do this in /etc/rc) then you don't get to have >more than one postmaster at a time. > > OK, I see what you're talking about from looking in /etc/rc. You might want to put something about this in the installation notes (if it's not already there), and/or put something in "configure" itself to notify users of this problem. Thanks for the response! Reuven