Re: Bug in amcheck?
| От | Konstantin Knizhnik |
|---|---|
| Тема | Re: Bug in amcheck? |
| Дата | |
| Msg-id | 2ec12fa4-f3e3-414f-adc8-a73518bffade@garret.ru обсуждение исходный текст |
| Ответ на | Re: Bug in amcheck? (Mihail Nikalayeu <mihailnikalayeu@gmail.com>) |
| Ответы |
Re: Bug in amcheck?
|
| Список | pgsql-hackers |
On 02/11/2025 2:27 PM, Mihail Nikalayeu wrote: > Hello! > >> I wonder if we should add P_ISHALFDEAD(opaque) for child page? > I am not a btree expert, but things I was able to find so far: > > In commit d114cc538715e14d29d6de8b6ea1a1d5d3e0edb4 next check is added: > >> bt_child_highkey_check(state, downlinkoffnum, >> child, topaque->btpo_level); > At the same time there is a comment below: > >> * We go ahead with our checks if the child page is half-dead. It's safe >> * to do so because we do not test the child's high key, so it does not >> * matter that the original high key will have been replaced by a dummy >> * truncated high key within _bt_mark_page_halfdead(). All other page >> * items are left intact on a half-dead page, so there is still something >> * to test. > So, yes, it looks like we need to skip the child's high key test for > half-dead pages. > > BWT, have you tried to create an injection_point-based reproducer? > > Best regards, > Mikhail. Hello Mikhail, Thank you very much for looking at this issue. And I am very sorry for delay with answer. Unfortunately I was not able to reproduce the problem for the latest Postgres: neither with injection points, neither with my original approach with sleeps. Originally I investigated the customer's problem with PG16. And have reproduced it for pg16,. I checked that relevant amcheck code was not changed since pg16, so I thought that the problem takes place for all Postgres versions. But looks like it is not true.
В списке pgsql-hackers по дате отправления: