pgsql: Fix bugs in GetSafeSnapshotBlockingPids(), introduced in 9600371

Поиск
Список
Период
Сортировка
От Andres Freund
Тема pgsql: Fix bugs in GetSafeSnapshotBlockingPids(), introduced in 9600371
Дата
Msg-id E1pPwXt-000ADc-JR@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Fix bugs in GetSafeSnapshotBlockingPids(), introduced in 96003717645

While removing the use of SHM_QUEUE from predicate.c, in 96003717645, I made
two mistakes in GetSafeSnapshotBlockingPids():
- Removed the check for output_size
- Previously, when the first loop didn't find a matching proc, sxact would be
  NULL. But with naive use of dlist_foreach() it ends up as the value of the
  last iteration.

The second issue is the cause of occasional failures in the deadlock-hard and
deadlock-soft isolation tests that we have been observing on CI. The issue was
very hard to reproduce, as it requires the transactions.sql regression test to
run at the same time as the deadlock-{hard,soft} isolation test.

I did not find other similar mistakes in 96003717645.

Discussion: https://postgr.es/m/20230208221145.bwzhancellclrgia@awork3.anarazel.de

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/49c2c5fcb1e1e4311f08687f78dd9121330ae637

Modified Files
--------------
src/backend/storage/lmgr/predicate.c | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)


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

Предыдущее
От: Tom Lane
Дата:
Сообщение: pgsql: Stop recommending auto-download of DTD files, and indeed disable
Следующее
От: Andres Freund
Дата:
Сообщение: pgsql: pgstat: Infrastructure for more detailed IO statistics