Thread: Missing llvm_leave_fatal_on_oom() call
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
> 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
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)