#6334·paradedb

`pg_test_linked_items_garbage_collect_multiple_pages` fails intermittently on the PG15 system job

Author: mdashtiCreated Sep 14, 2026Updated Sep 15, 2026
Labelsbugci/testspriority-low

What happens?

postgres::storage::linked_items::tests::pg_test_linked_items_garbage_collect_multiple_pages fails once in a while with a deleted entry still in the list after garbage_collect:

ERROR:  assertion failed: list.lookup_ex(|el| el.segment_id() == entry.segment_id(), None).is_err()

Seen on Test pg_search on PostgreSQL 15 (system - arm64) for #6240 at 5f4a5c1f4: https://github.com/paradedb/paradedb/actions/runs/34785867300/job/103801116443. It was the only failure of 401 tests in that job, garbage_collect_single_page passed right before it, and the same test passed on the next push (run 34877306737) with nothing changed near linked_items.rs. The PR doesn't touch storage.

The test builds 1999 entries with random segment ids, marks every tenth with FrozenTransactionId as xmax, runs garbage_collect with that same xid as the horizon, and expects every marked entry gone. The xid side is fixed by the test, so the survivor comes from something else retain or entry.recyclable(bman) looks at.

To Reproduce

Intermittent. Loop the one test on a system Postgres 15:

bash
cargo pgrx install --sudo --features block_tracker --pg-config=/usr/lib/postgresql/15/bin/pg_config
for i in $(seq 1 20); do
  cargo pgrx test pg15 --features block_tracker pg_test_linked_items_garbage_collect_multiple_pages || break
done