• Heikki Linnakangas's avatar
    Treat 2PC commit/abort the same as regular xacts in recovery. · e74e0906
    Heikki Linnakangas authored
    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 d19bd29f, 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).
    e74e0906
xlog.c 345 KB