Re: Bug in amcheck?

From: Peter Geoghegan <pg(at)bowt(dot)ie>
To: Heikki Linnakangas <hlinnaka(at)iki(dot)fi>
Cc: Mihail Nikalayeu <mihailnikalayeu(at)gmail(dot)com>, Konstantin Knizhnik <knizhnik(at)garret(dot)ru>, akorotkov(at)postgresql(dot)org, aekorotkov(at)gmail(dot)com, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: Bug in amcheck?
Date: 2025-12-02 17:59:19
Message-ID: CAH2-Wz=HSUvb-onO0MAEezdH5-+oEMyBeHaBHEnxjfC8MY_HCg@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Mon, Dec 1, 2025 at 4:20 PM Heikki Linnakangas <hlinnaka(at)iki(dot)fi> 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

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Melanie Plageman 2025-12-02 18:23:57 Re: All-visible pages with valid prune xid are confusing
Previous Message Heikki Linnakangas 2025-12-02 17:49:05 Re: All-visible pages with valid prune xid are confusing