pgsql: Fix corner case in autovacuum-forcing logic for multixact wrapar

Поиск
Список
Период
Сортировка
От Robert Haas
Тема pgsql: Fix corner case in autovacuum-forcing logic for multixact wrapar
Дата
Msg-id E1Z5yPq-0003uT-4z@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Fix corner case in autovacuum-forcing logic for multixact wraparound.

Since find_multixact_start() relies on SimpleLruDoesPhysicalPageExist(),
and that function looks only at the on-disk state, it's possible for it
to fail to find a page that exists in the in-memory SLRU that has not
been written yet.  If that happens, SetOffsetVacuumLimit() will
erroneously decide to force emergency autovacuuming immediately.

We should probably fix find_multixact_start() to consider the data
cached in memory as well as on the on-disk state, but that's no excuse
for SetOffsetVacuumLimit() to be stupid about the case where it can
no longer read the value after having previously succeeded in doing so.

Report by Andres Freund.

Branch
------
REL9_4_STABLE

Details
-------
http://git.postgresql.org/pg/commitdiff/8507a5b37bd95717572c5fd1863758f478fe7b10

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


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

Предыдущее
От: Robert Haas
Дата:
Сообщение: pgsql: Fix corner case in autovacuum-forcing logic for multixact wrapar
Следующее
От: Robert Haas
Дата:
Сообщение: pgsql: Fix corner case in autovacuum-forcing logic for multixact wrapar