Re: collect_corrupt_items_vacuum.patch
От | Alexander Korotkov |
---|---|
Тема | Re: collect_corrupt_items_vacuum.patch |
Дата | |
Msg-id | CAPpHfdt8Rj_LtG8aWKNzeRejutrN-zt6fKQGuXYyAE7-zNVHbg@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: collect_corrupt_items_vacuum.patch (Alexander Lakhin <exclusion@gmail.com>) |
Ответы |
Re: collect_corrupt_items_vacuum.patch
|
Список | pgsql-hackers |
Hi, Alexander! On Tue, Nov 7, 2023 at 3:00 PM Alexander Lakhin <exclusion@gmail.com> wrote: > > 07.11.2023 14:38, Alexander Korotkov wrote: > > Hi, Alexander. > > > > On Tue, Nov 7, 2023 at 1:00 PM Alexander Lakhin <exclusion@gmail.com> wrote: > >> It looks like the v2 patch doesn't fix the original issue. Maybe I miss > >> something, but with the patch applied, I see the failure immediately, > >> though without the patch several iterations are needed to get it. > > > > That's a bug in the patch. Thank you for cathing it. It should start > > calculation from latestCompletedXid + 1, not InvalidTransactionId. > > Please, check the revised patch. > > Thanks for looking at this! > Unfortunately, I still see the failure with the v3, but not on a first > iteration: > ... > iteration 316 > Error condition in psql-8.log: > create table vacuum_test as select 42 i; > vacuum (disable_page_skipping) vacuum_test; > select * from pg_check_visible('vacuum_test'); > t_ctid > -------- > (0,1) > (1 row) > > (I've double-checked that the patch is applied and get_strict_xid_horizon() > is called.) I managed to reproduce this on a Linux VM. This problem should arise because in extension I don't have access to ProcArrayStruct. So, my code is iterating the whole PGPROC's array. I reimplemented the new horizon calculation function in the core with usage of ProcArrayStruct. Now it doesn't fall for me. Please, recheck. ------ Regards, Alexander Korotkov
Вложения
В списке pgsql-hackers по дате отправления: