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
