snapbuild-v4-0003-Prevent-snapshot-builder-xmin-from-going-backwards.patch
text/x-patch
Filename: snapbuild-v4-0003-Prevent-snapshot-builder-xmin-from-going-backwards.patch
Type: text/x-patch
Part: 2
Message:
Re: snapbuild woes
Patch
Format: format-patch
Series: patch v4-0003
Subject: Prevent snapshot builder xmin from going backwards
| File | + | − |
|---|---|---|
| src/backend/replication/logical/snapbuild.c | 2 | 1 |
From e45af918ff67c936d34728c6acf04dc62074f691 Mon Sep 17 00:00:00 2001 From: Petr Jelinek <pjmodos@pjmodos.net> Date: Sun, 26 Feb 2017 01:07:33 +0100 Subject: [PATCH 3/5] Prevent snapshot builder xmin from going backwards --- src/backend/replication/logical/snapbuild.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/backend/replication/logical/snapbuild.c b/src/backend/replication/logical/snapbuild.c index b742c79..1e8346d 100644 --- a/src/backend/replication/logical/snapbuild.c +++ b/src/backend/replication/logical/snapbuild.c @@ -1141,7 +1141,8 @@ SnapBuildProcessRunningXacts(SnapBuild *builder, XLogRecPtr lsn, xl_running_xact * looking, it's correct and actually more efficient this way since we hit * fast paths in tqual.c. */ - builder->xmin = running->oldestRunningXid; + if (TransactionIdFollowsOrEquals(running->oldestRunningXid, builder->xmin)) + builder->xmin = running->oldestRunningXid; /* Remove transactions we don't need to keep track off anymore */ SnapBuildPurgeCommittedTxn(builder); -- 2.7.4