pgsql: nbtree VACUUM: cope with topparent inconsistencies.

From: Peter Geoghegan <pg(at)bowt(dot)ie>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: nbtree VACUUM: cope with topparent inconsistencies.
Date: 2023-06-22 00:42:12
Message-ID: [email protected]
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-committers

nbtree VACUUM: cope with topparent inconsistencies.

Avoid "right sibling %u of block %u is not next child" errors when
vacuuming a corrupt nbtree index. Just LOG the issue and press on.
That way VACUUM will have a decent chance of finishing off all required
processing for the index (and for the table as a whole).

This is similar to recent work from commit 5abff197, as well as work
from commit 5b861baa (later backpatched as commit 43e409ce), which
taught nbtree VACUUM to keep going when its "re-find" check fails. The
hardening added by this commit takes place directly after the "re-find"
check, right before the critical section for the first stage of page
deletion.

Author: Peter Geoghegan <pg(at)bowt(dot)ie>
Discussion: https://postgr.es/m/CAH2-Wz=dayg0vjs4+er84TS9ami=csdzjpuiCGbEw=idhwqhzQ@mail.gmail.com
Backpatch: 11- (all supported versions).

Branch
------
REL_11_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/7ddba19eb7114fd34f54986d83a1ad50b1db9537

Modified Files
--------------
src/backend/access/nbtree/nbtpage.c | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message David Rowley 2023-06-22 00:46:29 pgsql: Doc: mention that extended stats aren't used for joins
Previous Message Bruce Momjian 2023-06-21 23:20:33 pgsql: doc: update PG history as over "three decades"