Thread
Commits
-
pg_regress: Promptly detect failed postmaster startup.
- 309d16f073fd 9.4.21 landed
- 2fe431f1be0f 9.5.16 landed
- 13602a9b6b72 9.6.12 landed
- 7c97b0f55e75 10.7 landed
- ca01a6748d0b 11.2 landed
- 94600dd4f47d 12.0 landed
-
pg_regress: promptly detect failed postmaster startup
Noah Misch <noah@leadboat.com> — 2018-12-31T17:29:22Z
When "make check TEMP_CONFIG=<(echo break_me=on)" spawns a postmaster that fails startup, we detect that with "pg_regress: postmaster did not respond within 60 seconds". pg_regress has a kill(postmaster_pid, 0) intended to detect this case faster. Since kill(ZOMBIE-PID, 0) succeeds[1], that test is ineffective. The fix, attached, is to instead test waitpid(), like pg_ctl's wait_for_postmaster() does. [1] Search for "zombie" in http://pubs.opengroup.org/onlinepubs/9699919799/functions/kill.html
-
Re: pg_regress: promptly detect failed postmaster startup
Tom Lane <tgl@sss.pgh.pa.us> — 2018-12-31T18:51:31Z
Noah Misch <noah@leadboat.com> writes: > When "make check TEMP_CONFIG=<(echo break_me=on)" spawns a postmaster that > fails startup, we detect that with "pg_regress: postmaster did not respond > within 60 seconds". pg_regress has a kill(postmaster_pid, 0) intended to > detect this case faster. Since kill(ZOMBIE-PID, 0) succeeds[1], that test is > ineffective. Ooops. > The fix, attached, is to instead test waitpid(), like pg_ctl's > wait_for_postmaster() does. +1. This leaves postmaster_pid as a dangling pointer, but since we just exit immediately, that seems fine. (If we continued, and arrived at the "kill(postmaster_pid, SIGKILL)" below, it would not be fine.) regards, tom lane