Bruce Momjian <maillist@candle.pha.pa.us> writes:
> The 6.4.2 code would not allocate all shared memory/semaphores at
> startup, and only fail when you go to a large number of backends. 6.5
> fixes this by allocating it all on startup.
Also, I don't think 6.4.* actually tested for an attempt to start one
too many backends; it'd just do it and eventually you'd get a failure
downstream somewhere. (A failure *will* happen, because there are
fixed-size arrays containing per-backend entries, but I think the code
failed to notice ...)
There is now code in the postmaster that prevents starting that fatal
65th (or whatever) backend. If you want to keep running 6.4.2 you
should consider adopting CountChildren() and the code that calls it
from 6.5's src/backend/postmaster/postmaster.c.
regards, tom lane