Allan Engelhardt <allane@cybaea.com> writes:
> If my (RH 7.1) system crashes PostgreSQL does not restart automatically
> because the shared memory segment identifier and the .pid file remains,
That's kinda hard to believe; how would a shared memory segment survive
a system crash?
> % pg_ctl start
> pg_ctl: Another postmaster may be running. Trying to start postmaster
> anyway.
> Found a pre-existing shared memory block (ID 693600256) still in use.
Darn, I thought we had fixed that class of problems. Would you try
tracing through SharedMemoryIsInUse() to figure out why it thinks that?
It could be that there's some platform-specific variation of shmctl()
behavior that we need to cater for.
> What is the "proper" way of ensuring (as far as possible) that
> PostgreSQL starts automatically after a crash? Is it sufficient (and
> safe) to include a 'rm -f $PGDATA/postmaster.pid' in the system boot
> scripts?
You can do that if you want, but MHO is that this is a bug we need to
fix.
regards, tom lane