Allan Engelhardt <allane@cybaea.com> writes:
> Tom Lane wrote:
>> That's kinda hard to believe; how would a shared memory segment survive
>> a system crash?
> I don't think they can. Some options:
> (1) PostgreSQL keeps a reference to it somewhere and can get confused...
Indeed, there is a reference to the old segment in the postmaster.pid
file. At startup, if there's a postmaster.pid file, Postgres checks to
see that the indicated shared memory segment is gone or at least has no
processes attached to it. (This is a defense against the possibility
that the old postmaster died but there are still backends running in
the database.) Evidently, that check is mistakenly thinking that there
*is* still a shmem seg with attached processes. Question is why?
> Seriously: I tried to reproduce using SysRq+S, SysRq+B and couldn't. I
> think I have seen enough fsck for one night, so I might give it a rest...
You might try just kill -9'ing the postmaster, rather than physically
rebooting your system.
regards, tom lane