]> granicus.if.org Git - postgresql/commitdiff
pg_regress: Promptly detect failed postmaster startup.
authorNoah Misch <noah@leadboat.com>
Mon, 31 Dec 2018 21:50:32 +0000 (13:50 -0800)
committerNoah Misch <noah@leadboat.com>
Mon, 31 Dec 2018 21:51:23 +0000 (13:51 -0800)
Detect it the way pg_ctl's wait_for_postmaster() does.  When pg_regress
spawned a postmaster that failed startup, we were detecting that only
with "pg_regress: postmaster did not respond within 60 seconds".
Back-patch to 9.4 (all supported versions).

Reviewed by Tom Lane.

Discussion: https://postgr.es/m/20181231172922.GA199150@gust.leadboat.com

src/test/regress/pg_regress.c

index ab09e898e638d4d552aa94d914f029c332dd8801..a38a93d78db35ca4cfef608a7eb9b80d888f2ac0 100644 (file)
@@ -2359,7 +2359,7 @@ regression_main(int argc, char *argv[], init_function ifunc, test_function tfunc
                         * Fail immediately if postmaster has exited
                         */
 #ifndef WIN32
-                       if (kill(postmaster_pid, 0) != 0)
+                       if (waitpid(postmaster_pid, NULL, WNOHANG) == postmaster_pid)
 #else
                        if (WaitForSingleObject(postmaster_pid, 0) == WAIT_OBJECT_0)
 #endif