From: | Heikki Linnakangas <hlinnaka(at)iki(dot)fi> |
---|---|
To: | Pengfei Wang <pengfei(dot)wang(at)gmail(dot)com>, pgsql-bugs(at)lists(dot)postgresql(dot)org |
Subject: | Re: issue: nbtpage.c,_bt_pagedel may get wrong result |
Date: | 2024-05-23 11:13:53 |
Message-ID: | 6abbe3cf-9763-4b9c-b3c7-0d0fc6e2c685@iki.fi |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | 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)
From | Date | Subject | |
---|---|---|---|
Next Message | PG Bug reporting form | 2024-05-23 11:37:58 | BUG #18475: pg_dump: "Error Segmentation fault" |
Previous Message | Pengfei Wang | 2024-05-23 10:06:24 | issue: nbtpage.c,_bt_pagedel may get wrong result |