diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2017-04-23 13:10:57 -0400 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2017-04-23 13:11:06 -0400 |
commit | 0874d4f3e183757ba15a4b3f3bf563e0393dd9c2 (patch) | |
tree | c471030146e4c4633895a3e1fd93f2c64d45c8e2 /src | |
parent | 33f3bbc6d37dde23f02cb1f73753791fb9e6c4a8 (diff) | |
download | postgresql-0874d4f3e183757ba15a4b3f3bf563e0393dd9c2.tar.gz postgresql-0874d4f3e183757ba15a4b3f3bf563e0393dd9c2.zip |
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
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/access/transam/twophase.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/backend/access/transam/twophase.c b/src/backend/access/transam/twophase.c index 49b64292187..79b3957d08b 100644 --- a/src/backend/access/transam/twophase.c +++ b/src/backend/access/transam/twophase.c @@ -2142,7 +2142,7 @@ ProcessTwoPhaseBuffer(TransactionId xid, } if (setParent) - SubTransSetParent(xid, subxid, overwriteOK); + SubTransSetParent(subxid, xid, overwriteOK); } return buf; |