Re: issue: nbtpage.c,_bt_pagedel may get wrong result

Поиск
Список
Период
Сортировка
От Heikki Linnakangas
Тема Re: issue: nbtpage.c,_bt_pagedel may get wrong result
Дата
Msg-id 6abbe3cf-9763-4b9c-b3c7-0d0fc6e2c685@iki.fi
обсуждение исходный текст
Ответ на issue: nbtpage.c,_bt_pagedel may get wrong result  (Pengfei Wang <pengfei.wang@gmail.com>)
Ответы Re: issue: nbtpage.c,_bt_pagedel may get wrong result
Список pgsql-bugs
On 23/05/2024 13:06, Pengfei Wang wrote:
> # issue
>
https://github.com/postgres/postgres/blob/da32f5c4bca7f3447b869de2afbbfa0b74443d45/src/backend/access/nbtree/nbtpage.c#L1943
<https://github.com/postgres/postgres/blob/da32f5c4bca7f3447b869de2afbbfa0b74443d45/src/backend/access/nbtree/nbtpage.c#L1943>
> 
>     /*
>     * To avoid deadlocks, we'd better drop the leaf page lock
>     * before going further.
>     */
>     _bt_unlockbuf(rel, leafbuf);
> 
>     /*
>     * Check that the left sibling of leafbuf (if any) is not
>     * marked with INCOMPLETE_SPLIT flag before proceeding
>     */
>     Assert(leafblkno == scanblkno);
>     if (_bt_leftsib_splitflag(rel, leftsib, leafblkno))
>     {
>          ReleaseBuffer(leafbuf);
>          return;
>     }
> 
> After unlocking leaf, but before call _bt_leftsib_splitflag, leftsib may 
> be already split, and leafbuf's current left sibling is in 
> INCOMPLETE_SPLIT status.

In that case, there should be a downlink for 'leafbuf' in the parent, 
and we're good to proceed, right? See the comments in 
_bt_leftsib_splitflag().

-- 
Heikki Linnakangas
Neon (https://neon.tech)




В списке pgsql-bugs по дате отправления:

Предыдущее
От: Pengfei Wang
Дата:
Сообщение: issue: nbtpage.c,_bt_pagedel may get wrong result
Следующее
От: PG Bug reporting form
Дата:
Сообщение: BUG #18475: pg_dump: "Error Segmentation fault"