Re: terminate called after throwing an instance of 'std::bad_alloc'
Justin Pryzby <pryzby@telsasoft.com>
From: Justin Pryzby <pryzby@telsasoft.com>
To: Andres Freund <andres@anarazel.de>
Cc: pgsql-hackers@postgresql.org, Tom Lane <tgl@sss.pgh.pa.us>
Date: 2021-04-20T05:58:21Z
Lists: pgsql-hackers
On Tue, Apr 20, 2021 at 12:38:26AM -0500, Justin Pryzby wrote: > I don't know if this is related to the other issues, but this seems leaky. And it explains how the context use counter can exceed its threshold. create or replace function fn() returns void language plpgsql as $$ declare rec int; begin SELECT relpages INTO rec FROM pg_class LIMIT 1; end $$; explain analyze SELECT fn() FROM generate_series(1,99); SELECT SUM(a) FROM (VALUES(1))a(a); time PGOPTIONS='-cclient_min_messages=debug -clog_executor_stats=off -clog_min_duration_statement=-1 -cjit=on -cjit_above_cost=0 -cjit_inline_above_cost=0' psql ts -f jitleak.sql ... psql:jitleak.sql:6: DEBUG: recreating LLVM context after 100 uses Question: does the jit context need to be recreated only when inlining is enabled? Or maybe it's better if it's not conditionalized like that..
Commits
-
llvmjit: Use explicit LLVMContextRef for inlining
- 3b991f81c457 12.18 landed
- 10912f7d4ff0 13.14 landed
- 75a20a4b4b44 14.11 landed
- aef521849b68 15.6 landed
- 2cf50585e54a 16.2 landed
- 9dce22033d5d 17.0 landed