Re: BUG #17255: Server crashes in index_delete_sort_cmp() due to race condition with vacuum
От | Andres Freund |
---|---|
Тема | Re: BUG #17255: Server crashes in index_delete_sort_cmp() due to race condition with vacuum |
Дата | |
Msg-id | 20211111021618.n5ebam6f6licj746@alap3.anarazel.de обсуждение исходный текст |
Ответ на | Re: BUG #17255: Server crashes in index_delete_sort_cmp() due to race condition with vacuum (Peter Geoghegan <pg@bowt.ie>) |
Ответы |
Re: BUG #17255: Server crashes in index_delete_sort_cmp() due to race condition with vacuum
Re: BUG #17255: Server crashes in index_delete_sort_cmp() due to race condition with vacuum |
Список | pgsql-bugs |
Hi, On 2021-11-10 17:37:38 -0800, Peter Geoghegan wrote: > On Wed, Nov 10, 2021 at 4:47 PM Andres Freund <andres@anarazel.de> wrote: > Offhand I'd say that it would be a good idea to add comments over the > call to vacuum_set_xid_limits() made from vacuumlazy.c. Hm. To me all of this is more general than vacuum[lazy].c. Or even than anything heap related. > You might also move the call to GlobalVisTestFor() out of > lazy_scan_heap(), so that it gets called right after > vacuum_set_xid_limits(). That would make the new explanation easier to > follow, since you are after all explaining the relationship between > OldestXmin (or the vacuum_set_xid_limits() call itself) and vistest > (or the GlobalVisTestFor() call itself). > > Why do they have to be called in that order? Or do they? I noticed > that "make check-world" won't break if you switch the order. We need pruning to be at least as aggressive as relfrozenxid. If we did it the other way round, we couldn't guarantee that. I think we should work towards not actually using a statically determined relfrozenxid. We cause a lot of unnecessary re-vacuuming by using a static cutoff - instead we should check what the actually oldest xid in the table is and set relfrozenxid to that. Greetings, Andres Freund
В списке pgsql-bugs по дате отправления: