On Tuesday November 9 2004 1:37, Tom Lane wrote:
> >> The shared memory block would certainly not still exist after a system
> >> reboot, so what we have here is a misleading error message. Looking
> >> at the code, the most plausible explanation appears to be that
> >> shmctl(IPC_STAT) is failing (which it ought to) and returning some
> >> errno code different from EINVAL (which is the case we are expecting
> >> to see).
>
> I believe the attached patch will fix this problem for you, at least on
> the assumption that you are starting only one postmaster at system boot.
Just realizing we do start multiple postmasters under same user id when
upgrading a cluster (one on old port, one on new).
I noticed that ipcs on my linux box has a command-line option to list the
pid that created the segment. Not sure if such a library exists in usable
form, but looking for segments owned by the downed postmaster's pid would
seem to be what is needed. Just a thought...
Ed