From: Tom Lane Date: Tue, 30 May 2006 17:08:14 +0000 (+0000) Subject: PostmasterIsAlive test really ought to be in the inner loop for safety. X-Git-Tag: REL8_2_BETA1~877 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3993bd8e07a31dd3b4606a53cc02627da7ed769c;p=postgresql PostmasterIsAlive test really ought to be in the inner loop for safety. --- diff --git a/src/backend/postmaster/pgarch.c b/src/backend/postmaster/pgarch.c index 3b6cc9d5d9..9a8f24e5db 100644 --- a/src/backend/postmaster/pgarch.c +++ b/src/backend/postmaster/pgarch.c @@ -19,7 +19,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/postmaster/pgarch.c,v 1.21 2006/05/30 13:30:49 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/postmaster/pgarch.c,v 1.22 2006/05/30 17:08:14 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -352,12 +352,16 @@ pgarch_ArchiverCopyLoop(void) * some backend will add files onto the list of those that need archiving * while we are still copying earlier archives */ - while (PostmasterIsAlive(true) && pgarch_readyXlog(xlog)) + while (pgarch_readyXlog(xlog)) { int failures = 0; for (;;) { + /* Abandon processing if we notice our postmaster has died */ + if (!PostmasterIsAlive(true)) + return; + if (pgarch_archiveXlog(xlog)) { /* successful */