Re: BUG #18396: Assert in gistFindCorrectParent() fails on inserting large tuples into gist index

From: Tender Wang <tndrwang(at)gmail(dot)com>
To: Alexander Lakhin <exclusion(at)gmail(dot)com>, Heikki Linnakangas <hlinnaka(at)iki(dot)fi>
Cc: pgsql-bugs(at)lists(dot)postgresql(dot)org
Subject: Re: BUG #18396: Assert in gistFindCorrectParent() fails on inserting large tuples into gist index
Date: 2024-03-20 06:22:28
Message-ID: CAHewXN=Mi-Gzf+UZVCKc9yAtbp92SPGswMgDXzwK1bAPSyTQWw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Alexander Lakhin <exclusion(at)gmail(dot)com> 于2024年3月20日周三 13:00写道:

> Hello Heikki and Tender Wang,
>
> 19.03.2024 17:26, Heikki Linnakangas wrote:
> > On 19/03/2024 14:07, Tender Wang wrote:
> >> Thanks for your report. I can reproduce this issue.
> >> I try to delete the Assert, no coredump anymore.
> >> I need some time to learn GiST to find the root cause.
> >
> > If you're interested to work on this, Tender, maybe you can figure that
> out?
>

I will take some time to figure that out.

> >
>
> Thank you for looking at this!
>
> I'm also bothered by errors "no empty local buffer available" produced
> (on master, but not on REL_12_STABLE) when inserting larger tuples:
> INSERT INTO t SELECT '' FROM generate_series(1, 500) g;
> INSERT INTO t SELECT
> (SELECT string_agg('text' || g, ' ') FROM generate_series(1, 700) g)
> FROM generate_series(1, 30);
>
> Are those errors expected?
>

I think it is expected. More local buffers need here. I set temp_buffers
to 2GB.
this error didn't report. But stack depth limit exceeded. It is a hint that
to process
this case need more resource.

--
Tender Wang
OpenPie: https://en.openpie.com/

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message Sawyer Knoblich 2024-03-20 06:37:17 Re: BUG #18399: Query plan optimization results in runtime error when hoisting cast from inside subquery
Previous Message Peter Eisentraut 2024-03-20 06:02:48 Re: Regression tests fail with musl libc because libpq.so can't be loaded