Re: freeze cannot be finished
От | Sergey Burladyan |
---|---|
Тема | Re: freeze cannot be finished |
Дата | |
Msg-id | 87txffkgeq.fsf@home.progtech.ru обсуждение исходный текст |
Ответ на | Re: freeze cannot be finished (Jeff Janes <jeff.janes@gmail.com>) |
Ответы |
Re: freeze cannot be finished
|
Список | pgsql-general |
Jeff Janes <jeff.janes@gmail.com> writes: If I not mistaken, looks like lazy_scan_heap() called from lazy_vacuum_rel() (see [1]) skip pages, even if it run with scan_all == true, lazy_scan_heap() does not increment scanned_pages if lazy_check_needs_freeze() return false, so if this occurred at wraparound vacuum it cannot update pg_class, because pg_class updated via this code: new_frozen_xid = FreezeLimit; if (vacrelstats->scanned_pages < vacrelstats->rel_pages) new_frozen_xid = InvalidTransactionId; vac_update_relstats(onerel, new_rel_pages, new_rel_tuples, new_rel_allvisible, vacrelstats->hasindex, new_frozen_xid); so i think in our prevent wraparound vacuum vacrelstats->scanned_pages always less than vacrelstats->rel_pages and pg_class relfrozenxid never updated. [1] src/backend/commands/vacuumlazy.c -- Sergey Burladyan
В списке pgsql-general по дате отправления: