Re: pgsql: Teach verify_heapam() to validate update chains within a page.

Поиск
Список
Период
Сортировка
От Andrew Dunstan
Тема Re: pgsql: Teach verify_heapam() to validate update chains within a page.
Дата
Msg-id bfa5bd2b-c0e6-9d65-62ce-97f4766b1c42@dunslane.net
обсуждение исходный текст
Ответ на pgsql: Teach verify_heapam() to validate update chains within a page.  (Robert Haas <rhaas@postgresql.org>)
Ответы Re: pgsql: Teach verify_heapam() to validate update chains within a page.  (Andres Freund <andres@anarazel.de>)
Список pgsql-committers


On 2023-03-22 We 09:17, Robert Haas wrote:
Teach verify_heapam() to validate update chains within a page.

Prior to this commit, we only consider each tuple or line pointer
on the page in isolation, but now we can do some validation of a line
pointer against its successor. For example, a redirect line pointer
shouldn't point to another redirect line pointer, and if a tuple
is HOT-updated, the result should be a heap-only tuple.

Himanshu Upadhyaya and Robert Haas, reviewed by Aleksander Alekseev,
Andres Freund, and Peter Geoghegan.


This has apparently broken one case in the buildfarm, which now fails an upgrade from REL9_2_STABLE because we run amcheck after the upgrade:


heap table "regression.public.xacttest", block 0, offset 1:
    non-heap-only update produced a heap-only tuple at offset 18
heap table "regression.public.xacttest", block 0, offset 2:
    non-heap-only update produced a heap-only tuple at offset 19
heap table "regression.public.xacttest", block 0, offset 4:
    non-heap-only update produced a heap-only tuple at offset 20
heap table "regression.public.xacttest", block 0, offset 5:
    non-heap-only update produced a heap-only tuple at offset 21
heap table "regression.public.wslot", block 0, offset 89:
    non-heap-only update produced a heap-only tuple at offset 95
heap table "regression.public.pslot", block 0, offset 95:
    non-heap-only update produced a heap-only tuple at offset 100
heap table "regression.public.pslot", block 0, offset 96:
    non-heap-only update produced a heap-only tuple at offset 101


I don't know if this is a bug in this commit or if the REL9_2_STABLE repo is really broken.


cheers


andrew

--
Andrew Dunstan
EDB: https://www.enterprisedb.com

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

Предыдущее
От: Tom Lane
Дата:
Сообщение: pgsql: Reduce memory leakage in initdb.
Следующее
От: Andres Freund
Дата:
Сообщение: Re: pgsql: Teach verify_heapam() to validate update chains within a page.