Thread: Missing llvm_leave_fatal_on_oom() call

Missing llvm_leave_fatal_on_oom() call

From
Heikki Linnakangas
Date:
llvm_release_context() calls llvm_enter_fatal_on_oom(), but it never 
calls llvm_leave_fatal_on_oom(). Isn't that a clear leak?

(spotted this while investigating 
https://www.postgresql.org/message-id/a53cacb0-8835-57d6-31e4-4c5ef196de1a@deepbluecap.com, 
but it seems unrelated)

- Heikki
Attachment

Re: Missing llvm_leave_fatal_on_oom() call

From
Daniel Gustafsson
Date:
> On 21 Feb 2023, at 15:50, Heikki Linnakangas <hlinnaka@iki.fi> wrote:
>
> llvm_release_context() calls llvm_enter_fatal_on_oom(), but it never calls llvm_leave_fatal_on_oom(). Isn't that a
clearleak? 

Not sure how much of a leak it is since IIUC LLVM just stores a function
pointer to our error handler, but I can't see a reason not clean it up here.
The attached fix LGTM and passes make check with jit_above_cost set to zero.

--
Daniel Gustafsson




Re: Missing llvm_leave_fatal_on_oom() call

From
Heikki Linnakangas
Date:
On 04/07/2023 19:33, Daniel Gustafsson wrote:
>> On 21 Feb 2023, at 15:50, Heikki Linnakangas <hlinnaka@iki.fi> wrote:
>>
>> llvm_release_context() calls llvm_enter_fatal_on_oom(), but it never calls llvm_leave_fatal_on_oom(). Isn't that a
clearleak?
 
> 
> Not sure how much of a leak it is since IIUC LLVM just stores a function
> pointer to our error handler, but I can't see a reason not clean it up here.
> The attached fix LGTM and passes make check with jit_above_cost set to zero.

Pushed to all live branches, thanks for the review!

-- 
Heikki Linnakangas
Neon (https://neon.tech)