llvm_release_context() called llvm_enter_fatal_on_oom(), but was missing
the corresponding llvm_leave_fatal_on_oom() call. As a result, if JIT was
used at all, we were almost always in the "fatal-on-oom" state.
It only makes a difference if you use an extension written in C++, and
run out of memory in a C++ 'new' call. In that case, you would get a
PostgreSQL FATAL error, instead of the default behavior of throwing a
C++ exception.
Back- to all supported versions.
Reviewed-by: Daniel GustafssonDiscussion: https://www.postgresql.org/message-id/
54b78cca-bc84-dad8-4a7e-
5b56f764fab5@iki.fi
}
list_free(llvm_context->handles);
llvm_context->handles = NIL;
+
+ llvm_leave_fatal_on_oom();
}
/*