pgsql: Remove AELs from subxids correctly on standby

Поиск
Список
Период
Сортировка
От Simon Riggs
Тема pgsql: Remove AELs from subxids correctly on standby
Дата
Msg-id E1fUAwW-0002Yk-In@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Remove AELs from subxids correctly on standby

Issues relate only to subtransactions that hold AccessExclusiveLocks
when replayed on standby.

Prior to PG10, aborting subtransactions that held an
AccessExclusiveLock failed to release the lock until top level commit or
abort. 49bff5300d527 fixed that.

However, 49bff5300d527 also introduced a similar bug where subtransaction
commit would fail to release an AccessExclusiveLock, leaving the lock to
be removed sometimes early and sometimes late. This commit fixes
that bug also. Backpatch to PG10 needed.

Tested by observation. Note need for multi-node isolationtester to improve
test coverage for this and other HS cases.

Reported-by: Simon Riggs
Author: Simon Riggs

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/15378c1a15390a2b4c315f19f1644af46c7e3a15

Modified Files
--------------
src/backend/access/transam/xact.c   |  6 ++----
src/backend/storage/ipc/procarray.c |  5 +----
src/backend/storage/ipc/standby.c   | 24 +++---------------------
src/include/storage/standby.h       |  2 +-
4 files changed, 7 insertions(+), 30 deletions(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Peter Eisentraut
Дата:
Сообщение: Re: pgsql: Fix memory leak in PLySequence_ToJsonbValue()
Следующее
От: Tom Lane
Дата:
Сообщение: pgsql: Fix some minor error-checking oversights inParseFuncOrColumn().