pgsql: Fix assertion failures while processing NEW_CID record in logica
От | Amit Kapila |
---|---|
Тема | pgsql: Fix assertion failures while processing NEW_CID record in logica |
Дата | |
Msg-id | E1olN5t-0039sf-0P@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Fix assertion failures while processing NEW_CID record in logical decoding. When the logical decoding restarts from NEW_CID, since there is no association between the top transaction and its subtransaction, both are created as top transactions and have the same LSN. This caused the assertion failure in AssertTXNLsnOrder(). This patch skips the assertion check until we reach the LSN at which we start decoding the contents of the transaction, specifically start_decoding_at LSN in SnapBuild. This is okay because we don't guarantee to make the association between top transaction and subtransaction until we try to decode the actual contents of transaction. The ordering of the records prior to the start_decoding_at LSN should have been checked before the restart. The other assertion failure is due to the reason that we forgot to track that we have considered top-level transaction id in the list of catalog changing transactions that were committed when one of its subtransactions is marked as containing catalog change. Reported-by: Tomas Vondra, Osumi Takamichi Author: Masahiko Sawada, Kuroda Hayato Reviewed-by: Amit Kapila, Dilip Kumar, Kuroda Hayato, Kyotaro Horiguchi, Masahiko Sawada Backpatch-through: 10 Discussion: https://postgr.es/m/a89b46b6-0239-2fd5-71a9-b19b1f7a7145%40enterprisedb.com Discussion: https://postgr.es/m/TYCPR01MB83733C6CEAE47D0280814D5AED7A9%40TYCPR01MB8373.jpnprd01.prod.outlook.com Branch ------ REL_10_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/10ed7b9e4b1946e88ae7f71c2c3cc1c570ea214e Modified Files -------------- .../expected/catalog_change_snapshot.out | 45 ++++++++++++++++++++++ .../specs/catalog_change_snapshot.spec | 16 ++++++++ src/backend/replication/logical/reorderbuffer.c | 14 +++++++ src/backend/replication/logical/snapbuild.c | 3 ++ 4 files changed, 78 insertions(+)
В списке pgsql-committers по дате отправления: