On Thu, Jun 28, 2012 at 12:13 PM, Thom Brown <thom@linux.com> wrote:
> On 64-bit Linux, if I allocate more shared buffers than the system is
> capable of reserving, it doesn't start. This is expected, but there's
> no error logged anywhere (actually, nothing logged at all), and the
> postmaster.pid file is left behind after this failure.
Fixed.
However, I discovered something unpleasant. With the new code, on
MacOS X, if you set shared_buffers to say 3200GB, the server happily
starts up. Or at least the shared memory allocation goes through just
fine. The postmaster then sits there apparently forever without
emitting any log messages, which I eventually discovered was because
it's busy initializing a billion or so spinlocks.
I'm pretty sure that this machine does not have >3TB of virtual
memory, even counting swap. So that means that MacOS X has absolutely
no common sense whatsoever as far as anonymous shared memory
allocations go. Not sure exactly what to do about that. Linux is
more sensible, at least on the system I tested, and fails cleanly.
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company