pgsql: Fix MVCC bug with prepared xact with subxacts on standby
От | Heikki Linnakangas |
---|---|
Тема | pgsql: Fix MVCC bug with prepared xact with subxacts on standby |
Дата | |
Msg-id | E1sMtwy-003GMb-LB@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Fix MVCC bug with prepared xact with subxacts on standby We did not recover the subtransaction IDs of prepared transactions when starting a hot standby from a shutdown checkpoint. As a result, such subtransactions were considered as aborted, rather than in-progress. That would lead to hint bits being set incorrectly, and the subtransactions suddenly becoming visible to old snapshots when the prepared transaction was committed. To fix, update pg_subtrans with prepared transactions's subxids when starting hot standby from a shutdown checkpoint. The snapshots taken from that state need to be marked as "suboverflowed", so that we also check the pg_subtrans. Backport to all supported versions. Discussion: https://www.postgresql.org/message-id/6b852e98-2d49-4ca1-9e95-db419a2696e0@iki.fi Branch ------ REL_14_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/9dbf8ab48c21f9a006e578983b21739326d7c621 Modified Files -------------- src/backend/access/transam/twophase.c | 7 +++-- src/backend/access/transam/xlog.c | 14 +++++----- src/backend/storage/ipc/procarray.c | 18 ++++++++++--- src/backend/storage/ipc/standby.c | 6 ++--- src/include/storage/standby.h | 10 +++++++- src/test/recovery/t/009_twophase.pl | 48 ++++++++++++++++++++++++++++++++++- src/tools/pgindent/typedefs.list | 1 + 7 files changed, 86 insertions(+), 18 deletions(-)
В списке pgsql-committers по дате отправления: