Hi Nisha, here are a couple of review comments for patch v52-0001. ====== Commit Message
Add check if slot is already acquired, then mark it invalidate directly. ~ /slot/the slot/ "mark it invalidate" ? Maybe you meant: "then invalidate it directly", or "then mark it 'invalidated' directly", or etc. ====== src/backend/replication/logical/slotsync.c 1. @@ -1508,7 +1508,7 @@ ReplSlotSyncWorkerMain(char *startup_data, size_t startup_data_len) static void update_synced_slots_inactive_since(void) { - TimestampTz now = 0; + TimestampTz now; /* * We need to update inactive_since only when we are promoting standby to @@ -1523,6 +1523,9 @@ update_synced_slots_inactive_since(void) /* The slot sync worker or SQL function mustn't be running by now */ Assert((SlotSyncCtx->pid == InvalidPid) && !SlotSyncCtx->syncing); + /* Use same inactive_since time for all slots */ + now = GetCurrentTimestamp(); + Something is broken with these changes. AFAICT, the result after applying patch 0001 still has code: /* Use the same inactive_since time for all the slots. */ if (now == 0) now = GetCurrentTimestamp(); So the end result has multiple/competing assignments to variable 'now'. ====== Kind Regards, Peter Smith. Fujitsu Australia