mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-08-31 12:07:23 +02:00
postmaster startup scrutinizes any shared memory segment recorded in postmaster.pid, exiting if that segment matches the current data directory and has an attached process. When the postmaster.pid file was missing, a starting postmaster used weaker checks. Change to use the same checks in both scenarios. This increases the chance of a startup failure, in lieu of data corruption, if the DBA does "kill -9 `head -n1 postmaster.pid` && rm postmaster.pid && pg_ctl -w start". A postmaster will no longer recycle segments pertaining to other data directories. That's good for production, but it's bad for integration tests that crash a postmaster and immediately delete its data directory. Such a test now leaks a segment indefinitely. No "make check-world" test does that. win32_shmem.c already avoided all these problems. In 9.6 and later, enhance PostgresNode to facilitate testing. Back-patch to 9.4 (all supported versions). Reviewed by Daniel Gustafsson and Kyotaro HORIGUCHI. Discussion: https://postgr.es/m/20130911033341.GD225735@tornado.leadboat.com |
||
---|---|---|
.. | ||
aix | ||
hpux | ||
tas | ||
win32 | ||
.gitignore | ||
atomics.c | ||
Makefile | ||
posix_sema.c | ||
sysv_sema.c | ||
sysv_shmem.c | ||
win32_sema.c | ||
win32_shmem.c |