Re: [Bug] Usage of stale dead_items pointer in parallel vacuum
От | Richard Guo |
---|---|
Тема | Re: [Bug] Usage of stale dead_items pointer in parallel vacuum |
Дата | |
Msg-id | CAMbWs4-ExA3HgnUJngzFJ+W-79hazKpgF0v4MLQw8G6=A3Xk7w@mail.gmail.com обсуждение исходный текст |
Ответ на | [Bug] Usage of stale dead_items pointer in parallel vacuum (Kevin Oommen Anish <kevin.o@zohocorp.com>) |
Ответы |
Re: [Bug] Usage of stale dead_items pointer in parallel vacuum
|
Список | pgsql-bugs |
On Thu, Oct 2, 2025 at 12:56 AM Kevin Oommen Anish <kevin.o@zohocorp.com> wrote: > Failed regression: > CREATE TABLE pvactst2 (i INT) WITH (autovacuum_enabled = off); > INSERT INTO pvactst2 SELECT generate_series(1, 1000); > CREATE INDEX ON pvactst2 (i); > CREATE INDEX ON pvactst2 (i); > SET min_parallel_index_scan_size to 0; > SET maintenance_work_mem TO 64; > INSERT INTO pvactst2 SELECT generate_series(1, 1000); > DELETE FROM pvactst2 WHERE i < 1000; > VACUUM (PARALLEL 2) pvactst2; I can reproduce the issue and confirm that your patch fixes it. I didn't use your custom malloc allocator but instead applied a redundant palloc0 for TidStore in TidStoreCreateShared(), hoping to get a different chunk of memory (haha). @@ -212,6 +212,7 @@ TidStoreCreateShared(size_t max_bytes, int tranche_id) size_t dsa_init_size = DSA_DEFAULT_INIT_SEGMENT_SIZE; size_t dsa_max_size = DSA_MAX_SEGMENT_SIZE; + ts = palloc0(sizeof(TidStore)); ts = palloc0(sizeof(TidStore)); - Richard
В списке pgsql-bugs по дате отправления: