Re: dsa_allocate() faliure

From: Justin Pryzby <pryzby(at)telsasoft(dot)com>
To: Arne Roland <A(dot)Roland(at)index(dot)de>
Cc: Thomas Munro <thomas(dot)munro(at)enterprisedb(dot)com>, Sand Stone <sand(dot)m(dot)stone(at)gmail(dot)com>, Rick Otten <rottenwindfish(at)gmail(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, "pgsql-performance(at)lists(dot)postgresql(dot)org" <pgsql-performance(at)lists(dot)postgresql(dot)org>, Robert Haas <robertmhaas(at)gmail(dot)com>
Subject: Re: dsa_allocate() faliure
Date: 2019-02-01 18:08:11
Message-ID: 20190201180811.GE29720@telsasoft.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers pgsql-performance

On Thu, Jan 31, 2019 at 06:19:54PM +0000, Arne Roland wrote:
> this is reproducible, while it's highly sensitive to the change of plans (i.e. the precise querys that do break change with every new analyze). Disabling parallel query seems to solve the problem (as expected).
> At some point even the simple query
> select count(*) from test_tab where (o = '0' and date >= '30.01.2019'::date-interval '14 days' or o = '1' and date >= '30.01.2019'::date-interval '14 days') and coalesce(fid,fallback) >=6 and coalesce(fid,fallback) <=6
> was reported to fail (with the same error) at the live database, but I wasn't able to obtain a plan, since it works again with the current live data (maybe autoanalyze is at fault here).
> The table test_tab has roughly 70 children that inherit from it. The children and the corresponding indexes should be named like '%part%'.
>
> I attached a query with a plan that fails on my test database.

Thanks - note that previously Thomas said:

On Mon, Dec 03, 2018 at 11:45:00AM +1300, Thomas Munro wrote:
> On Sat, Dec 1, 2018 at 9:46 AM Justin Pryzby <pryzby(at)telsasoft(dot)com> wrote:
> > elog(FATAL,
> > "dsa_allocate could not find %zu free pages", npages);
> > + abort()
>
> If anyone can reproduce this problem with a debugger, it'd be
> interesting to see the output of dsa_dump(area), and
> FreePageManagerDump(segment_map->fpm). This error condition means

Are you able to cause the error in a test/devel/non-production environment to
run under a debugger, or could you compile with "abort();" after that elog() to
save a corefile ?

Justin

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Andrew Gierth 2019-02-01 19:01:49 Re: Ryu floating point output patch
Previous Message Peter Geoghegan 2019-02-01 18:03:49 Re: Reorganize collation lookup time and place

Browse pgsql-performance by date

  From Date Subject
Next Message Jakub Glapa 2019-02-04 07:52:17 Re: dsa_allocate() faliure
Previous Message Arne Roland 2019-01-31 18:19:54 RE: dsa_allocate() faliure