From: | Peter Geoghegan <pg(at)bowt(dot)ie> |
---|---|
To: | Andres Freund <andres(at)anarazel(dot)de> |
Cc: | PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Allow cancelling VACUUM of nbtrees with corrupted right links |
Date: | 2018-06-27 19:49:56 |
Message-ID: | CAH2-Wz=hW6UCF6OEEiHz-dnmHoEgXdztZEM+YM-AzYOdAy1w9Q@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Wed, Jun 27, 2018 at 12:18 PM, Andres Freund <andres(at)anarazel(dot)de> wrote:
> It's possibly wrong that it's unreachable - I've just not managed to get
> there. If somebody has an idea how to build a reproducible case to reach
> it...
Set a breakpoint in _bt_unlink_halfdead_page() after the initial
"LockBuffer(leafbuf, BUFFER_LOCK_UNLOCK);", and then provoke a page
split in the left sibling by carefully inserting values that belong
within its part of the key space? I would probably attempt this with
an index on text, so that I could contrive as many key values that
belong on the left sibling as needed.
You're probably looking at a test-case that doesn't involve a
multi-level deletion, where the leaf and target page are the same. Not
sure if you want to reproduce the multi-level deletion case
independently.
--
Peter Geoghegan
From | Date | Subject | |
---|---|---|---|
Next Message | Andres Freund | 2018-06-27 19:52:41 | Re: Allow cancelling VACUUM of nbtrees with corrupted right links |
Previous Message | Alvaro Herrera | 2018-06-27 19:43:46 | Re: Performance regression with PostgreSQL 11 and partitioning |