summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2017-04-23 13:10:57 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2017-04-23 13:10:57 -0400
commit8565808733ec127cf5972b4facc79889aee57850 (patch)
tree0cb2cc45b03d2effdc10c2d4000aa314eb35746a
parent38a6e57db2e99d22a15e71359cd090da17fd77b0 (diff)
Fix order of arguments to SubTransSetParent().
ProcessTwoPhaseBuffer (formerly StandbyRecoverPreparedTransactions) mixed up the parent and child XIDs when calling SubTransSetParent to record the transactions' relationship in pg_subtrans. Remarkably, analysis by Simon Riggs suggests that this doesn't lead to visible problems (at least, not in non-Assert builds). That might explain why we'd not noticed it before. Nonetheless, it's surely wrong. This code was born broken, so back-patch to all supported branches. Discussion: https://postgr.es/m/20110.1492905318@sss.pgh.pa.us
-rw-r--r--src/backend/access/transam/twophase.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/backend/access/transam/twophase.c b/src/backend/access/transam/twophase.c
index 0dd5b59ff46..f3d239de6e1 100644
--- a/src/backend/access/transam/twophase.c
+++ b/src/backend/access/transam/twophase.c
@@ -1922,7 +1922,7 @@ StandbyRecoverPreparedTransactions(bool overwriteOK)
TransactionId subxid = subxids[i];
Assert(TransactionIdFollows(subxid, xid));
- SubTransSetParent(xid, subxid, overwriteOK);
+ SubTransSetParent(subxid, xid, overwriteOK);
}
}
}