postgres.git / summary / log / commit / refs

commit    48c9f4926562278a2fd2b85e7486c6d11705f177
Author:   Simon Riggs <simon@2ndQuadrant.com>
Date:     Fri Dec 29 14:30:33 2017 +0000
First released in: 11.0

    Fix race condition when changing synchronous_standby_names
    
    A momentary window exists when synchronous_standby_names
    changes that allows commands issued after the change to
    continue to act as async until the change becomes visible.
    Remove the race by using more appropriate test in syncrep.c
    
    Author: Asim Rama Praveen and Ashwin Agrawal
    Reported-by: Xin Zhang, Ashwin Agrawal, and Asim Rama Praveen
    Reviewed-by: Michael Paquier, Masahiko Sawada


src/backend/replication/syncrep.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/backend/replication/syncrep.c b/src/backend/replication/syncrep.c index 8677235411c..962772ef8f6 100644 --- a/src/backend/replication/syncrep.c +++ b/src/backend/replication/syncrep.c @@ -156,11 +156,9 @@ SyncRepWaitForLSN(XLogRecPtr lsn, bool commit) mode = Min(SyncRepWaitMode, SYNC_REP_WAIT_FLUSH); /* - * Fast exit if user has not requested sync replication, or there are no - * sync replication standby names defined. Note that those standbys don't - * need to be connected. + * Fast exit if user has not requested sync replication. */ - if (!SyncRepRequested() || !SyncStandbysDefined()) + if (!SyncRepRequested()) return; Assert(SHMQueueIsDetached(&(MyProc->syncRepLinks))); [parent: 2958a672b1fe]