From: Marko Kreen Date: Wed, 24 Feb 2016 18:12:28 +0000 (+0200) Subject: takeover: wait for pidfile to go away X-Git-Tag: pgbouncer_1_7_2~8 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e38ddbe7d2c0c01b287be530ccccf9062bd4f7b0;p=pgbouncer takeover: wait for pidfile to go away --- diff --git a/src/takeover.c b/src/takeover.c index 3209d54..f528681 100644 --- a/src/takeover.c +++ b/src/takeover.c @@ -58,6 +58,18 @@ void takeover_finish(void) disconnect_server(old_bouncer, false, "disko over"); old_bouncer = NULL; + if (cf_pidfile && cf_pidfile[0]) { + log_info("waiting for old pidfile to go away"); + while (1) { + struct stat st; + if (stat(cf_pidfile, &st) < 0) { + if (errno == ENOENT) + break; + } + usleep(USEC/10); + } + } + log_info("old process killed, resuming work"); resume_all(); }