Commit e0b581ac authored by Heikki Linnakangas's avatar Heikki Linnakangas

Send all outstanding WAL before exiting when smart shutdown is requested.

This was broken by my previous patch to send WAL in smaller batches.

Patch by Fujii Masao.
parent bc0f0809
......@@ -30,7 +30,7 @@
*
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/replication/walsender.c,v 1.22 2010/05/26 22:34:49 heikki Exp $
* $PostgreSQL: pgsql/src/backend/replication/walsender.c,v 1.23 2010/05/31 10:44:37 heikki Exp $
*
*-------------------------------------------------------------------------
*/
......@@ -394,8 +394,10 @@ WalSndLoop(void)
*/
if (ready_to_stop)
{
XLogSend(&output_message, &caughtup);
shutdown_requested = true;
if (!XLogSend(&output_message, &caughtup))
goto eof;
if (caughtup)
shutdown_requested = true;
}
/* Normal exit from the walsender is here */
......@@ -458,7 +460,6 @@ eof:
static void
InitWalSnd(void)
{
/* use volatile pointer to prevent code rearrangement */
int i;
/*
......@@ -474,6 +475,7 @@ InitWalSnd(void)
*/
for (i = 0; i < max_wal_senders; i++)
{
/* use volatile pointer to prevent code rearrangement */
volatile WalSnd *walsnd = &WalSndCtl->walsnds[i];
SpinLockAcquire(&walsnd->mutex);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment