v2-0001-Update-outdated-comment-on-WAL-logged-locks-with-.patch
text/x-patch
Filename: v2-0001-Update-outdated-comment-on-WAL-logged-locks-with-.patch
Type: text/x-patch
Part: 0
Message:
Re: CSN snapshots in hot standby
Patch
Format: format-patch
Series: patch v2-0001
Subject: Update outdated comment on WAL-logged locks with invalid XID
| File | + | − |
|---|---|---|
| src/backend/storage/ipc/standby.c | 3 | 7 |
From 4bc7a2b3c9b7437871a22caa8f5ee8548face4dd Mon Sep 17 00:00:00 2001 From: Heikki Linnakangas <heikki.linnakangas@iki.fi> Date: Tue, 13 Aug 2024 20:47:42 +0300 Subject: [PATCH v2 1/6] Update outdated comment on WAL-logged locks with invalid XID We haven't generated those for a long time. --- src/backend/storage/ipc/standby.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/backend/storage/ipc/standby.c b/src/backend/storage/ipc/standby.c index 872679ca44..25267f0f85 100644 --- a/src/backend/storage/ipc/standby.c +++ b/src/backend/storage/ipc/standby.c @@ -1121,6 +1121,9 @@ StandbyReleaseAllLocks(void) * StandbyReleaseOldLocks * Release standby locks held by top-level XIDs that aren't running, * as long as they're not prepared transactions. + * + * This is needed to prune the locks of crashed transactions, which didn't + * write an ABORT/COMMIT record. */ void StandbyReleaseOldLocks(TransactionId oldxid) @@ -1266,13 +1269,6 @@ standby_redo(XLogReaderState *record) * transactions already committed, since those commits raced ahead when * making WAL entries. * - * The loose timing also means that locks may be recorded that have a - * zero xid, since xids are removed from procs before locks are removed. - * So we must prune the lock list down to ensure we hold locks only for - * currently running xids, performed by StandbyReleaseOldLocks(). - * Zero xids should no longer be possible, but we may be replaying WAL - * from a time when they were possible. - * * For logical decoding only the running xacts information is needed; * there's no need to look at the locking information, but it's logged anyway, * as there's no independent knob to just enable logical decoding. For -- 2.39.2