Stop reading uninitialized memory in heap_inplace_lock().
Stop computing a never-used value. This removes the read; the read had no functional implications. Back-patch to v12, like commit a07e03fd8fa7daf4d1356f7cb501ffe784ea6257. Reported by Alexander Lakhin. Discussion: https://postgr.es/m/6c92f59b-f5bc-e58c-9bdd-d1f21c17c786@gmail.com
This commit is contained in:
parent
af4e342034
commit
d34ffbaa10
@ -6229,10 +6229,9 @@ heap_inplace_lock(Relation relation,
|
|||||||
LockTupleMode lockmode = LockTupleNoKeyExclusive;
|
LockTupleMode lockmode = LockTupleNoKeyExclusive;
|
||||||
MultiXactStatus mxact_status = MultiXactStatusNoKeyUpdate;
|
MultiXactStatus mxact_status = MultiXactStatusNoKeyUpdate;
|
||||||
int remain;
|
int remain;
|
||||||
bool current_is_member;
|
|
||||||
|
|
||||||
if (DoesMultiXactIdConflict((MultiXactId) xwait, infomask,
|
if (DoesMultiXactIdConflict((MultiXactId) xwait, infomask,
|
||||||
lockmode, ¤t_is_member))
|
lockmode, NULL))
|
||||||
{
|
{
|
||||||
LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
|
LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
|
||||||
ret = false;
|
ret = false;
|
||||||
|
@ -63,6 +63,30 @@ step addk2: ALTER TABLE intra_grant_inplace ADD PRIMARY KEY (c); <waiting ...>
|
|||||||
step r3: ROLLBACK;
|
step r3: ROLLBACK;
|
||||||
step addk2: <... completed>
|
step addk2: <... completed>
|
||||||
|
|
||||||
|
starting permutation: b3 sfnku3 keyshr5 addk2 r3
|
||||||
|
step b3: BEGIN ISOLATION LEVEL READ COMMITTED;
|
||||||
|
step sfnku3:
|
||||||
|
SELECT relhasindex FROM pg_class
|
||||||
|
WHERE oid = 'intra_grant_inplace'::regclass FOR NO KEY UPDATE;
|
||||||
|
|
||||||
|
relhasindex
|
||||||
|
-----------
|
||||||
|
f
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
step keyshr5:
|
||||||
|
SELECT relhasindex FROM pg_class
|
||||||
|
WHERE oid = 'intra_grant_inplace'::regclass FOR KEY SHARE;
|
||||||
|
|
||||||
|
relhasindex
|
||||||
|
-----------
|
||||||
|
f
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
step addk2: ALTER TABLE intra_grant_inplace ADD PRIMARY KEY (c); <waiting ...>
|
||||||
|
step r3: ROLLBACK;
|
||||||
|
step addk2: <... completed>
|
||||||
|
|
||||||
starting permutation: b2 sfnku2 addk2 c2
|
starting permutation: b2 sfnku2 addk2 c2
|
||||||
step b2: BEGIN;
|
step b2: BEGIN;
|
||||||
step sfnku2:
|
step sfnku2:
|
||||||
|
@ -96,6 +96,14 @@ permutation
|
|||||||
addk2(r3)
|
addk2(r3)
|
||||||
r3
|
r3
|
||||||
|
|
||||||
|
# reproduce bug in DoesMultiXactIdConflict() call
|
||||||
|
permutation
|
||||||
|
b3
|
||||||
|
sfnku3
|
||||||
|
keyshr5
|
||||||
|
addk2(r3)
|
||||||
|
r3
|
||||||
|
|
||||||
# same-xact rowmark
|
# same-xact rowmark
|
||||||
permutation
|
permutation
|
||||||
b2
|
b2
|
||||||
|
Loading…
x
Reference in New Issue
Block a user