From: | Andres Freund <andres(at)anarazel(dot)de> |
---|---|
To: | pgsql-committers(at)postgresql(dot)org |
Subject: | pgsql: Make HEAP_LOCK/HEAP2_LOCK_UPDATED replay reset HEAP_XMAX_INVALID |
Date: | 2016-07-15 22:02:26 |
Message-ID: | [email protected] |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
Make HEAP_LOCK/HEAP2_LOCK_UPDATED replay reset HEAP_XMAX_INVALID.
0ac5ad5 started to compress infomask bits in WAL records. Unfortunately
the replay routines for XLOG_HEAP_LOCK/XLOG_HEAP2_LOCK_UPDATED forgot to
reset the HEAP_XMAX_INVALID (and some other) hint bits.
Luckily that's not problematic in the majority of cases, because after a
crash/on a standby row locks aren't meaningful. Unfortunately that does
not hold true in the presence of prepared transactions. This means that
after a crash, or after promotion, row level locks held by a prepared,
but not yet committed, prepared transaction might not be enforced.
Discussion: 20160715192319(dot)ubfuzim4zv3rqnxv(at)alap3(dot)anarazel(dot)de
Backpatch: 9.3, the oldest branch on which 0ac5ad5 is present.
Branch
------
REL9_3_STABLE
Details
-------
http://git.postgresql.org/pg/commitdiff/46acbeb2f09c862bae5056d34473223764ff99b0
Modified Files
--------------
src/backend/access/heap/heapam.c | 4 ++++
1 file changed, 4 insertions(+)
From | Date | Subject | |
---|---|---|---|
Next Message | Andres Freund | 2016-07-16 01:05:48 | pgsql: Fix torn-page, unlogged xid and further risks from heap_update() |
Previous Message | Andres Freund | 2016-07-15 22:02:25 | pgsql: Make HEAP_LOCK/HEAP2_LOCK_UPDATED replay reset HEAP_XMAX_INVALID |