pgsql: Move call to GetTopTransactionId() earlier in LockAcquire(),

Поиск
Список
Период
Сортировка
От Simon Riggs
Тема pgsql: Move call to GetTopTransactionId() earlier in LockAcquire(),
Дата
Msg-id E1PMsFp-00032p-BX@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Move call to GetTopTransactionId() earlier in LockAcquire(),
removing an infrequently occurring race condition in Hot Standby.
An xid must be assigned before a lock appears in shared memory,
rather than immediately after, else GetRunningTransactionLocks()
may see InvalidTransactionId, causing assertion failures during
lock processing on standby.

Bug report and diagnosis by Fujii Masao, fix by me.

Branch
------
master

Details
-------
http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=ed78384acd691e3336e170aa18af69d15d088027

Modified Files
--------------
src/backend/storage/ipc/standby.c |   29 +++++++++++++++++++++--------
src/backend/storage/lmgr/lock.c   |   29 +++++++++++++++++++++--------
src/include/storage/standby.h     |    1 +
3 files changed, 43 insertions(+), 16 deletions(-)


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

Предыдущее
От: Thom Brown
Дата:
Сообщение: Re: pgsql: Add index entries for more functions
Следующее
От: Simon Riggs
Дата:
Сообщение: pgsql: Move call to GetTopTransactionId() earlier in LockAcquire(),