mirror of
https://github.com/postgres/postgres.git
synced 2025-07-30 11:03:19 +03:00
Prevent non-streaming replication connections from being selected sync slave
This prevents a pg_basebackup backup session that just does a base backup (no xlog involved at all) from becoming the synchronous slave and thus blocking all access while it runs. Also fixes the problem when a higher priority slave shows up it would become the sync standby before it has reached the STREAMING state, by making sure we can only switch to a walsender that's actually STREAMING. Fujii Masao
This commit is contained in:
@ -397,6 +397,7 @@ SyncRepReleaseWaiters(void)
|
||||
volatile WalSnd *walsnd = &walsndctl->walsnds[i];
|
||||
|
||||
if (walsnd->pid != 0 &&
|
||||
walsnd->state == WALSNDSTATE_STREAMING &&
|
||||
walsnd->sync_standby_priority > 0 &&
|
||||
(priority == 0 ||
|
||||
priority > walsnd->sync_standby_priority))
|
||||
|
Reference in New Issue
Block a user