On Mon, Dec 1, 2025 at 4:20 PM Heikki Linnakangas <[email protected]> wrote: > Ok, here's a proper patch with tests. The patch itself is the above > one-liner. It's in patch 0004. > > While testing this, I bumped into another similar amcheck bug: if the > root page split is interrupted, verify_btree() complains: > > ERROR: block 3 is not true root in index "nbtree_incomplete_splits_i_idx" > > Attached patch 0002 contains a fix and a test for that. The fix for that > is also one-liner.
Good catch. > Summary of the patches: > > Patch 0001 adds an injection point test for incomplete splits. We > already had such a test for GIN, which handles incomplete splits the > same way as B-tree. I copy-pasted and adapted the GIN test for B-tree. > This was an easy way to increase our test coverage. > > Patch 0002 fixes the incomplete-root-split bug in amcheck. It modifies > the test added in patch 0001 to cover the bug fix. > > Patch 0003 adds a test for half-dead pages, similar to what 0001 did for > incomplete splits. > > Patch 0004 fixes the bogus half-deaf-page error in amcheck, i.e. the > issue that started this thread. It modifies the test introduced in patch > 0003 to add amcheck calls, to cover the bug fix. All seem reasonable. These tests will increase nbtree code coverage quite a bit, which is a nice bonus. -- Peter Geoghegan
