pgsql: Treat 2PC commit/abort the same as regular xacts in recovery. - Mailing list pgsql-committers

From Heikki Linnakangas
Subject pgsql: Treat 2PC commit/abort the same as regular xacts in recovery.
Date
Msg-id E1XC3J9-0001cJ-5d@gemulon.postgresql.org
Whole thread Raw
List 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 by date:

Previous
From: Heikki Linnakangas
Date:
Subject: pgsql: Treat 2PC commit/abort the same as regular xacts in recovery.
Next
From: Heikki Linnakangas
Date:
Subject: pgsql: Treat 2PC commit/abort the same as regular xacts in recovery.