Re: BUG #19519: REPACK can fail due to missing chunk for toast value

From: shihao zhong <zhong950419(at)gmail(dot)com>
To: Matthias van de Meent <boekewurm+postgres(at)gmail(dot)com>
Cc: Michael Paquier <michael(at)paquier(dot)xyz>, Andrey Borodin <x4mmm(at)yandex-team(dot)ru>, Heikki Linnakangas <hlinnaka(at)iki(dot)fi>, Srinath Reddy Sadipiralla <srinath2133(at)gmail(dot)com>, Imran Zaheer <imran(dot)zhir(at)gmail(dot)com>, Alexander Lakhin <exclusion(at)gmail(dot)com>, PostgreSQL mailing lists <pgsql-bugs(at)lists(dot)postgresql(dot)org>, Konstantin Knizhnik <knizhnik(at)garret(dot)ru>
Subject: Re: BUG #19519: REPACK can fail due to missing chunk for toast value
Date: 2026-10-24 04:41:55
Message-ID: CAGRkXqRuw4RznBW-YOwnDse-zBvJpL7GDH=PTnttFmZhiZ-ueg@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Hi Matthias,

Thanks for v7. The DELETE cases pass for me. Three notes.

1. Rui's UPDATE case still fails. If the spec does an UPDATE instead
of the DELETE, VACUUM FULL and REPACK hit

TRAP: failed Assert("recently_dead")

v7 has the first half of Rui's 0001 but not the second half, which
drops the stashed old version in place and counts it.

2. The cleanup loop in the sort path uses bms_prev_member(), so it
frees only the first value. CLUSTER with three toasted columns peaks
at 496 MB for me, and at 76 MB with bms_next_member().

3. The tests only check that nothing fails. Could they also SELECT
the table after the rewrite, and add the UPDATE case?

The attached patch fixes 1 and 2 on top of v7.

Thanks,
Shihao

Attachment Content-Type Size
nocfbot-v7-review-fixes.txt text/plain 3.8 KB

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message shihao zhong 2026-10-24 04:47:54 Re: BUG #19759: Hashed SetOp / RecursiveUnion pre-allocate up to 64 GB from the row estimate since 8f29467c57f
Previous Message BHUVAN CHILUKUTI 2026-10-24 04:34:53 first_value()/nth_value() with IGNORE NULLS loop forever (EXCLUDE GROUP/TIES, frame past partition end, no ORDER BY)