8000 Fix executing invalidation messages generated by subtransactions duri… · postgres/postgres@216af69 · GitHub
[go: up one dir, main page]

Skip to content < 10000 link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/keyboard-shortcuts-dialog.47de85e2c17af43cefd5.module.css" />

Commit 216af69

Browse files
author
Amit Kapila
committed
Fix executing invalidation messages generated by subtransactions during decoding.
This problem has been introduced by commit 272248a where we started assigning the subtransactions to the top-level transaction when we mark both the top-level transaction and its subtransactions as containing catalog changes. After we assign subtransactions to the top-level transaction, we were not allowed to execute any invalidations associated with it when we decide to skip the transaction. The reason to assign the subtransactions to the top-level transaction was to avoid the assertion failure in AssertTXNLsnOrder() as they have the same LSN when we sometimes start accumulating transaction changes for partial transactions after the restart. Now that with commit 64ff0fe, we skip this assertion check until we reach the LSN at which we start decoding the contents of the transaction, so, there is no reason for such an assignment anymore. The assignment change was introduced in 15 and prior versions but this bug doesn't exist in branches prior to 14 since we don't add invalidation messages to subtransactions. We decided to backpatch through 11 for consistency but not for 10 since its final release is near. Reported-by: Kuroda Hayato Author: Masahiko Sawada Reviewed-by: Amit Kapila Backpatch-through: 11 Discussion: https://postgr.es/m/TYAPR01MB58660803BCAA7849C8584AA4F57E9%40TYAPR01MB5866.jpnprd01.prod.outlook.com Discussion: https://postgr.es/m/a89b46b6-0239-2fd5-71a9-b19b1f7a7145%40enterprisedb.com
1 parent 5f7076c commit 216af69

File tree

1 file changed

+0
-3
lines changed

1 file changed

+0
-3
lines changed

src/backend/replication/logical/snapbuild.c

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2114,9 +2114,6 @@ SnapBuildXidSetCatalogChanges(SnapBuild *builder, TransactionId xid, int subxcnt
21142114
int i;
21152115

21162116
for (i = 0; i < subxcnt; i++)
2117-
{
2118-
ReorderBufferAssignChild(builder->reorder, xid, subxacts[i], lsn);
21192117
ReorderBufferXidSetCatalogChanges(builder->reorder, subxacts[i], lsn);
2120-
}
21212118
}
21222119
}

0 commit comments

Comments
 (0)
0