Re: BUG #17245: Index corruption involving deduplicated entries
От | Andres Freund |
---|---|
Тема | Re: BUG #17245: Index corruption involving deduplicated entries |
Дата | |
Msg-id | 20211030204246.d6zda3sa46bqpo5l@alap3.anarazel.de обсуждение исходный текст |
Ответ на | Re: BUG #17245: Index corruption involving deduplicated entries (Peter Geoghegan <pg@bowt.ie>) |
Ответы |
Re: BUG #17245: Index corruption involving deduplicated entries
|
Список | pgsql-bugs |
Hi, On 2021-10-30 11:46:22 -0700, Peter Geoghegan wrote: > Attached is a draft patch that fixes the problem. I think it probably is worth adding an error check someplace that verifies that problems of this kind will be detected with, uh, less effort. I think it'd also be good to add a test that specifically verifies that parallel vacuum doesn't have a bug around "parallel worthy" and not "parallel worthy" indexes. It's too easy a mistake to make, and because visible corruption is delayed, it's likely that we won't detect such cases. > Also attached is a second patch. This adds assertions to > heap_index_delete_tuples() to catch cases where a heap TID in an index > points to an LP_UNUSED item in the heap (which is what this bug looked > like, mostly). It also checks for certain more or less equivalent > inconsistencies: the case where a heap TID in an index points to a > line pointer that's past the end of the heap page's line pointer > array, and the case where a heap TID in an index points directly to a > heap-only tuple. ISTM that at least a basic version of this is worth doing as a check throwing an ERROR, rather than an assertion. It's hard to believe this'd be a significant portion of the cost of heap_index_delete_tuples(), and I think it would help catch problems a lot earlier. Greetings, Andres Freund
В списке pgsql-bugs по дате отправления: