From: | Amit Kapila <akapila(at)postgresql(dot)org> |
---|---|
To: | pgsql-committers(at)lists(dot)postgresql(dot)org |
Subject: | pgsql: Avoid possible deadlock while locking multiple heap pages. |
Date: | 2019-02-02 10:27:27 |
Message-ID: | E1gpsWF-0007XZ-Aw@gemulon.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | 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
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/0b8bdb3c3ec092f18813d5b6fc738d7ec450289b
Modified Files
--------------
src/backend/access/heap/hio.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
From | Date | Subject | |
---|---|---|---|
Next Message | Michael Paquier | 2019-02-03 08:50:05 | pgsql: Add PG_CFLAGS, PG_CXXFLAGS, and PG_LDFLAGS variables to PGXS |
Previous Message | Noah Misch | 2019-02-02 08:18:33 | Re: pgsql: Remove references to Majordomo |