mirror of
https://github.com/postgres/postgres.git
synced 2025-06-16 06:01:02 +03:00
LLVMJIT: Release JIT context after running ExprContext shutdown callbacks.
Due to inlining it previously was possible that an ExprContext's shutdown callback pointed to a JITed function. As the JIT context previously was shut down before the shutdown callbacks were called, that could lead to segfaults. Fix the ordering. Reported-By: Dmitry Dolgov Author: Andres Freund Discussion: https://postgr.es/m/CA+q6zcWO7CeAJtHBxgcHn_hj+PenM=tvG0RJ93X1uEJ86+76Ug@mail.gmail.com Backpatch: 11-, where JIT compilation was added
This commit is contained in:
@ -47,7 +47,6 @@
|
||||
#include "commands/trigger.h"
|
||||
#include "executor/execdebug.h"
|
||||
#include "foreign/fdwapi.h"
|
||||
#include "jit/jit.h"
|
||||
#include "mb/pg_wchar.h"
|
||||
#include "miscadmin.h"
|
||||
#include "optimizer/clauses.h"
|
||||
@ -498,10 +497,6 @@ standard_ExecutorEnd(QueryDesc *queryDesc)
|
||||
UnregisterSnapshot(estate->es_snapshot);
|
||||
UnregisterSnapshot(estate->es_crosscheck_snapshot);
|
||||
|
||||
/* release JIT context, if allocated */
|
||||
if (estate->es_jit)
|
||||
jit_release_context(estate->es_jit);
|
||||
|
||||
/*
|
||||
* Must switch out of context before destroying it
|
||||
*/
|
||||
|
Reference in New Issue
Block a user