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-003GMP-JE@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_16_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/b5b418b689ec5d3807b0eea34e58166191e18499 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 | 46 +++++++++++++++++++++++++++++++++++ src/tools/pgindent/typedefs.list | 1 + 7 files changed, 85 insertions(+), 17 deletions(-)
В списке pgsql-committers по дате отправления: