From 73a525de62244b4c85dd0f8d35779d720e4f01eb Mon Sep 17 00:00:00 2001 From: Arseny Sher Date: Tue, 18 Jun 2024 16:29:54 +0300 Subject: [PATCH] walproposer: move CHECK_FOR_INTERRUPTS to after waiting. We should check it always after a sleep even before starting streaming. --- pgxn/neon/walproposer.c | 1 - pgxn/neon/walproposer_pg.c | 7 ++----- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/pgxn/neon/walproposer.c b/pgxn/neon/walproposer.c index dbc67a24f5..dbd331b1da 100644 --- a/pgxn/neon/walproposer.c +++ b/pgxn/neon/walproposer.c @@ -286,7 +286,6 @@ WalProposerPoll(WalProposer *wp) void WalProposerStart(WalProposer *wp) { - /* Initiate connections to all safekeeper nodes */ for (int i = 0; i < wp->n_safekeepers; i++) { diff --git a/pgxn/neon/walproposer_pg.c b/pgxn/neon/walproposer_pg.c index 55eb8c52ce..6aa3d8fcf2 100644 --- a/pgxn/neon/walproposer_pg.c +++ b/pgxn/neon/walproposer_pg.c @@ -1270,13 +1270,8 @@ WalSndLoop(WalProposer *wp) { XLogRecPtr flushPtr; - /* Clear any already-pending wakeups */ - ResetLatch(MyLatch); - for (;;) { - CHECK_FOR_INTERRUPTS(); - XLogBroadcastWalProposer(wp); WalProposerPoll(wp); } @@ -1807,6 +1802,8 @@ walprop_pg_wait_event_set(WalProposer *wp, long timeout, Safekeeper **sk, uint32 late_cv_trigger = ConditionVariableCancelSleep(); #endif + CHECK_FOR_INTERRUPTS(); + /* * Process config if requested. This restarts walproposer if safekeepers * list changed. Don't do that for sync-safekeepers because quite probably