From 842fe8657f96e38150b233982312b133dc7cc8c2 Mon Sep 17 00:00:00 2001 From: LiHeng Date: Sat, 16 Jan 2021 21:02:14 +0800 Subject: [PATCH] fix xlog could not cleanup with cascade standby --- .../storage/replication/walsender.cpp | 20 +++++-------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/src/gausskernel/storage/replication/walsender.cpp b/src/gausskernel/storage/replication/walsender.cpp index f5d05a876..cef697c53 100755 --- a/src/gausskernel/storage/replication/walsender.cpp +++ b/src/gausskernel/storage/replication/walsender.cpp @@ -4195,30 +4195,20 @@ bool WalSndQuorumInProgress(int type) bool WalSndAllInProgress(int type) { int i; - int num = 0; - int all_num = 0; - - for (i = 1; i < MAX_REPLNODE_NUM; i++) { - if (t_thrd.postmaster_cxt.ReplConnArray[i] != NULL) - all_num++; - } for (i = 0; i < g_instance.attr.attr_storage.max_wal_senders; i++) { /* use volatile pointer to prevent code rearrangement */ volatile WalSnd *walsnd = &t_thrd.walsender_cxt.WalSndCtl->walsnds[i]; SpinLockAcquire(&walsnd->mutex); - if (walsnd->pid != 0 && walsnd->pid != t_thrd.proc_cxt.MyProcPid && - ((walsnd->sendRole & type) == walsnd->sendRole) && + if (walsnd->pid == 0 && ((walsnd->sendRole & type) == walsnd->sendRole) && walsnd->sentPtr > 0) { - num++; + SpinLockRelease(&walsnd->mutex); + return false; } SpinLockRelease(&walsnd->mutex); } - if (num >= all_num) { - return true; - } else { - return false; - } + + return true; } /*