Re: Failure in contrib test _int on loach
Heikki Linnakangas <hlinnaka@iki.fi>
From: Heikki Linnakangas <hlinnaka@iki.fi>
To: Anastasia Lubennikova <a.lubennikova@postgrespro.ru>,
pgsql-hackers@lists.postgresql.org
Date: 2019-04-10T15:25:58Z
Lists: pgsql-hackers
On 09/04/2019 19:11, Anastasia Lubennikova wrote: > 05.04.2019 19:41, Anastasia Lubennikova writes: >> In attachment, you can find patch with a test that allows to reproduce >> the bug not randomly, but on every run. >> Now I'm trying to find a way to fix the issue. > > The problem was caused by incorrect detection of the page to insert new > tuple after split. > If gistinserttuple() of the tuple formed by gistgetadjusted() had to > split the page, we must to go back to the parent and > descend back to the child that's a better fit for the new tuple. > > Previously this was handled by the code block with the following comment: > > * Concurrent split detected. There's no guarantee that the > * downlink for this page is consistent with the tuple we're > * inserting anymore, so go back to parent and rechoose the best > * child. > > After introducing GistBuildNSN this code path became unreachable. > To fix it, I added new flag to detect such splits during indexbuild. Isn't it possible that the grandparent page is also split, so that we'd need to climb further up? - Heikki
Commits
-
Detect internal GiST page splits correctly during index build.
- 22251686f07f 12.0 landed
-
Generate less WAL during GiST, GIN and SP-GiST index build.
- 9155580fd5fc 12.0 cited