pgsql: Fix race condition in TransactionGroupUpdateXidStatus().

Поиск
Список
Период
Сортировка
От Amit Kapila
Тема pgsql: Fix race condition in TransactionGroupUpdateXidStatus().
Дата
Msg-id E1lxiZd-0001mc-UZ@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Fix race condition in TransactionGroupUpdateXidStatus().

When we cannot immediately acquire CLogControlLock in exclusive mode at
commit time, we add ourselves to a list of processes that need their XIDs
status update. We do this if the clog page where we need to update the
current transaction status is the same as the group leader's clog page,
otherwise, we allow the caller to clear it by itself. Now, when we can't
add ourselves to any group, we were not clearing the current proc if it
has already become a member of some group which was leading to an
assertion failure when the same proc was assigned to another backend after
the current backend exits.

Reported-by: Alexander Lakhin
Bug: 17072
Author: Amit Kapila
Tested-By: Alexander Lakhin
Backpatch-through: 11, where it was introduced
Discussion: https://postgr.es/m/17072-2f8764857ef2c92a@postgresql.org

Branch
------
REL_11_STABLE

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

Modified Files
--------------
src/backend/access/transam/clog.c | 5 +++++
1 file changed, 5 insertions(+)


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

Предыдущее
От: Thomas Munro
Дата:
Сообщение: pgsql: Change recovery_init_sync_method to PGC_SIGHUP.
Следующее
От: Amit Kapila
Дата:
Сообщение: pgsql: Improve RelationGetIdentityKeyBitmap().