]> granicus.if.org Git - postgresql/commit
Avoid bogus TwoPhaseState locking sequences
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Wed, 14 Jun 2017 15:29:05 +0000 (11:29 -0400)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
Wed, 14 Jun 2017 15:29:05 +0000 (11:29 -0400)
commite90ceeaa495f5f40f224bcf84d2b0700eae8d7a3
tree11cef843a392c053d2dbfe5e490dac56b31e5674
parent0d9bdbcaae00dac89a82c25e66e4a859130e2fe8
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
src/backend/access/transam/twophase.c
src/backend/access/transam/xact.c