Hi Jingtang,

The fix in v2 LGTM. I used local injection points to test both
ginbulkdelete() and the ginvacuumcleanup() path where bulk deletion was
not performed.

The test ensures that a parallel worker handles the GIN index. It pauses
cleanup at the original tail page, after releasing the buffer content
lock, then appends new pending pages from another session. Without the
fix, both paths continue until the pending list is empty. With v2, both
leave new pending pages behind, matching serial autovacuum. Manual
parallel VACUUM still empties the pending list.

> Do you have any ideas for a simpler way to test this?

I haven't found a simpler, reliable way to test this without adding
injection points either. Given the extra machinery needed to test such
a small fix, I'd lean toward leaving it without a regression test.

Best regards,
Yuhang Qiu



Reply via email to