From: Magnus Hagander Date: Thu, 6 Oct 2011 19:43:14 +0000 (+0200) Subject: Ensure walsenders can be SIGTERMed while in non-walsender code X-Git-Tag: REL9_1_2~86 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5df22bba644d1c083118942292097ba2395fad15;p=postgresql Ensure walsenders can be SIGTERMed while in non-walsender code In oder to exit on SIGTERM when in non-walsender code, such as do_pg_stop_backup(), we need to set the interrupt variables that are used there, and not just the walsender local ones. --- diff --git a/src/backend/replication/walsender.c b/src/backend/replication/walsender.c index bc7b3146b7..606b9e8571 100644 --- a/src/backend/replication/walsender.c +++ b/src/backend/replication/walsender.c @@ -1207,6 +1207,13 @@ WalSndShutdownHandler(SIGNAL_ARGS) if (MyWalSnd) SetLatch(&MyWalSnd->latch); + /* + * Set the standard (non-walsender) state as well, so that we can + * abort things like do_pg_stop_backup(). + */ + InterruptPending = true; + ProcDiePending = true; + errno = save_errno; }