pgsql: Treat 2PC commit/abort the same as regular xacts in recovery.
| От | Heikki Linnakangas |
|---|---|
| Тема | pgsql: Treat 2PC commit/abort the same as regular xacts in recovery. |
| Дата | |
| Msg-id | E1XC3J9-0001cJ-5d@gemulon.postgresql.org обсуждение |
| Список | pgsql-committers |
Treat 2PC commit/abort the same as regular xacts in recovery. There were several oversights in recovery code where COMMIT/ABORT PREPARED records were ignored: * pg_last_xact_replay_timestamp() (wasn't updated for 2PC commits) * recovery_min_apply_delay (2PC commits were applied immediately) * recovery_target_xid (recovery would not stop if the XID used 2PC) The first of those was reported by Sergiy Zuban in bug #11032, analyzed by Tom Lane and Andres Freund. The bug was always there, but was masked before commit d19bd29f07aef9e508ff047d128a4046cc8bc1e2, because COMMIT PREPARED always created an extra regular transaction that was WAL-logged. Backpatch to all supported versions (older versions didn't have all the features and therefore didn't have all of the above bugs). Branch ------ REL9_1_STABLE Details ------- http://git.postgresql.org/pg/commitdiff/de88ec6bf45477cd02905a8802e79868cb2ffdc3 Modified Files -------------- src/backend/access/transam/xlog.c | 30 ++++++++++++++++++++++++++---- src/include/access/xact.h | 3 +-- 2 files changed, 27 insertions(+), 6 deletions(-)
В списке pgsql-committers по дате отправления: