pgsql: Avoid bogus TwoPhaseState locking sequences

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Avoid bogus TwoPhaseState locking sequences
Date: 2017-06-14 15:35:02
Message-ID: E1dLAJy-0000Fl-OT@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Avoid bogus TwoPhaseState locking sequences

The optimized code in 728bd991c3c4 contains a few invalid locking
sequences. To wit, the original code would try to acquire an lwlock
that it already holds. Avoid this by moving lock acquisitions to
higher-level code, and install appropriate assertions in low-level that
the correct mode is held.

Authors: Michael Paquier, Álvaro Herrera
Reported-By: chuanting wang
Bug: #14680
Discussion: https://postgr.es/m/20170531033228.1487.10124@wrigleys.postgresql.org

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/e90ceeaa495f5f40f224bcf84d2b0700eae8d7a3

Modified Files
--------------
src/backend/access/transam/twophase.c | 87 +++++++++++++++++++----------------
src/backend/access/transam/xact.c | 68 ++++++++++++++-------------
2 files changed, 83 insertions(+), 72 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2017-06-14 15:44:54 pgsql: Improve release note text about set-returning-function changes.
Previous Message Peter Eisentraut 2017-06-14 15:12:37 pgsql: Put documentation of options and commands in more alphabetical o