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 по дате отправления: