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
commit2e14541c4992e5a2de6b5be2f7ed3f3062ed4ec1 (patch)
treeb06690eed015cbfeb9e5e68867d9b0bef260c516
parent55cdda91c65b5d2c82672b327857cac3e0e6e07d (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 84a77376690..3d2f04e81db 100644
--- a/src/backend/access/transam/twophase.c
+++ b/src/backend/access/transam/twophase.c
@@ -1923,7 +1923,7 @@ StandbyRecoverPreparedTransactions(bool overwriteOK)
TransactionId subxid = subxids[i];
Assert(TransactionIdFollows(subxid, xid));
- SubTransSetParent(xid, subxid, overwriteOK);
+ SubTransSetParent(subxid, xid, overwriteOK);
}
}
}