pgsql: Avoid possible deadlock while locking multiple heap pages. - Mailing list pgsql-committers

From Amit Kapila
Subject pgsql: Avoid possible deadlock while locking multiple heap pages.
Date
Msg-id E1gpsWF-0007Xd-BC@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Avoid possible deadlock while locking multiple heap pages.

To avoid deadlock, backend acquires a lock on heap pages in block
number order.  In certain cases, lock on heap pages is dropped and
reacquired.  In this case, the locks are dropped for reading in
corresponding VM page/s. The issue is we re-acquire locks in bufferId
order whereas the intention was to acquire in blockid order.

This commit ensures that we will always acquire locks on heap pages in
blockid order.

Reported-by: Nishant Fnu
Author: Nishant Fnu
Reviewed-by: Amit Kapila and Robert Haas
Backpatch-through: 9.4
Discussion: https://postgr.es/m/5883C831-2ED1-47C8-BFAC-2D5BAE5A8CAE@amazon.com

Branch
------
REL_10_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/1ca33fc7b5111748222d1ac20b8b8ebb49bb75e6

Modified Files
--------------
src/backend/access/heap/hio.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)


pgsql-committers by date:

Previous
From: Michael Paquier
Date:
Subject: pgsql: Improve installation instructions with pg_ctl in documentation
Next
From: Michael Paquier
Date:
Subject: pgsql: Add PG_CFLAGS, PG_CXXFLAGS, and PG_LDFLAGS variables to PGXS