Thread: pgsql: Repair two related errors in heap_lock_tuple: it was failing to
pgsql: Repair two related errors in heap_lock_tuple: it was failing to
From
tgl@postgresql.org (Tom Lane)
Date:
Log Message: ----------- Repair two related errors in heap_lock_tuple: it was failing to recognize cases where we already hold the desired lock "indirectly", either via membership in a MultiXact or because the lock was originally taken by a different subtransaction of the current transaction. These cases must be accounted for to avoid needless deadlocks and/or inappropriate replacement of an exclusive lock with a shared lock. Per report from Clarence Gardner and subsequent investigation. Modified Files: -------------- pgsql/src/backend/access/heap: heapam.c (r1.221 -> r1.222) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/heap/heapam.c.diff?r1=1.221&r2=1.222) pgsql/src/backend/access/transam: multixact.c (r1.21 -> r1.22) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/transam/multixact.c.diff?r1=1.21&r2=1.22) pgsql/src/backend/utils/time: tqual.c (r1.99 -> r1.100) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/time/tqual.c.diff?r1=1.99&r2=1.100) pgsql/src/include/access: multixact.h (r1.10 -> r1.11) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/access/multixact.h.diff?r1=1.10&r2=1.11)