Re: post-recovery amcheck expectations
Peter Geoghegan <pg@bowt.ie>
From: Peter Geoghegan <pg@bowt.ie>
To: Noah Misch <noah@leadboat.com>
Cc: pgsql-hackers@postgresql.org, Alexander Korotkov <aekorotkov@gmail.com>
Date: 2023-10-25T22:45:54Z
Lists: pgsql-hackers
On Tue, Oct 24, 2023 at 8:05 PM Noah Misch <noah@leadboat.com> wrote: > Can't it still happen if the sequence of unfortunately timed crashes causes > deletions from left to right? Take this example, expanding the one above. > Half-kill 4, crash, half-kill 3, crash, half-kill 2 in: > > * 1 > * / / | \ \ > * 4 <-> 3 <-> 2 <-> 1 > > (That's not to say it has ever happened outside of a test.) Hmm. Perhaps you're right. I thought that this wasn't possible in part due to the fact that you'd have to access all of these leaf pages in the same order each time, without ever passing over a previous half-dead page. But I suppose that there's nothing stopping the index tuples from being deleted from each page in an order that leaves open the possibility of something like this. (It's extremely unlikely, of course, but that wasn't ever in question.) I withdraw my suggestion about the wording from your patch. It seems committable. Thanks -- Peter Geoghegan
Commits
-
amcheck: Distinguish interrupted page deletion from corruption.
- f31ccb575ed6 13.13 landed
- e04509f3246d 11.22 landed
- 42496cba60bc 14.10 landed
- 3a205c91665f 12.17 landed
- 6f81386a9cea 15.5 landed
- 3c6a05b805c7 16.1 landed
- 6ec9e9975eff 17.0 landed
-
Improve checking of child pages in contrib/amcheck.
- d114cc538715 13.0 cited