mirror of
https://github.com/postgres/postgres.git
synced 2026-02-11 23:03:25 -05: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 stop if shmat() of an old segment fails with EACCES. 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 (in earlier versions) by Daniel Gustafsson and Kyotaro HORIGUCHI. Discussion: https://postgr.es/m/20190408064141.GA2016666@rfd.leadboat.com |
||
|---|---|---|
| .. | ||
| editors | ||
| findoidjoins | ||
| ifaddrs | ||
| make_diff | ||
| msvc | ||
| perlcheck | ||
| pginclude | ||
| pgindent | ||
| ccsym | ||
| check_bison_recursion.pl | ||
| codelines | ||
| copyright.pl | ||
| FAQ2txt | ||
| find_badmacros | ||
| find_static | ||
| find_typedef | ||
| fix-old-flex-code.pl | ||
| gen_keywordlist.pl | ||
| git-external-diff | ||
| git_changelog | ||
| make_ctags | ||
| make_etags | ||
| make_mkid | ||
| PerfectHash.pm | ||
| pgtest | ||
| RELEASE_CHANGES | ||
| testint128.c | ||
| valgrind.supp | ||
| version_stamp.pl | ||
| win32tzlist.pl | ||