Re: Oom on temp (un-analyzed table caused by JIT) V16.1 [Fixed Already]

From: Kirk Wolak <wolakk(at)gmail(dot)com>
To: Laurenz Albe <laurenz(dot)albe(at)cybertec(dot)at>
Cc: Daniel Gustafsson <daniel(at)yesql(dot)se>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
Subject: Re: Oom on temp (un-analyzed table caused by JIT) V16.1 [Fixed Already]
Date: 2024-01-19 22:09:02
Message-ID: CACLU5mSj_YA0wYCjvWTxY=ZtqWaUJ4D=BSNaUiTY_RDkFDLqqg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Fri, Jan 19, 2024 at 4:20 AM Laurenz Albe <laurenz(dot)albe(at)cybertec(dot)at>
wrote:

> On Thu, 2024-01-18 at 19:50 -0500, Kirk Wolak wrote:
> > I did a little more checking and the reason I did not see the link
> MIGHT be because EXPLAIN did not show a JIT attempt.
> > I tried to use settings that FORCE a JIT... But to no avail.
> >
> > I am now concerned that the problem is more hidden in my use case.
> Meaning I CANNOT conclude it is fixed.
> > But I know of NO WAY to force a JIT (I lowered costs to 1, etc. ).
> >
> > You don't know a way to force at least the JIT analysis to happen?
> (because I already knew if JIT was off, the leak wouldn't happen).
>
> If you set the limits to 0, you can trigger it easily:
>
> SET jit = on;
> SET jit_above_cost = 0;
> SET jit_inline_above_cost = 0;
> SET jit_optimize_above_cost = 0;
>

Okay,
I Did exactly this (just now). But the EXPLAIN does not contain the JIT?

-------------------------------------------------------------------------------
Sort (cost=5458075.88..5477861.00 rows=7914047 width=12)
Sort Key: seid
-> HashAggregate (cost=3910139.62..4280784.00 rows=7914047 width=12)
Group Key: seid, fr_field_name, st_field_name
Planned Partitions: 128
-> Seq Scan on parts (cost=0.00..1923249.00 rows=29850000
width=12)
Filter: ((seid <> 497) AND ((partnum)::text >= '1'::text))
(7 rows)

From a FUTURE email, I noticed pg_jit_available()

and it's set to f??

Okay, so does this require a special BUILD command?

postgres=# select pg_jit_available();
pg_jit_available
------------------
f
(1 row)

postgres=# \dconfig *jit*
List of configuration parameters
Parameter | Value
-------------------------+---------
jit | on
jit_above_cost | 100000
jit_debugging_support | off
jit_dump_bitcode | off
jit_expressions | on
jit_inline_above_cost | 500000
jit_optimize_above_cost | 500000
jit_profiling_support | off
jit_provider | llvmjit
jit_tuple_deforming | on
(10 rows)

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tomas Vondra 2024-01-19 22:14:12 Re: index prefetching
Previous Message Nathan Bossart 2024-01-19 21:59:41 cleanup patches for dshash