LLVMJIT: Release JIT context after running ExprContext shutdown callbacks.

Andres Freund <andres@anarazel.de>

Commit: 3acc4acd9bcbefbfaf789762950726c6208daf1b
Author: Andres Freund <andres@anarazel.de>
Date: 2018-07-25T23:31:49Z
Releases: 12.0
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

Files

PathChange+/−
src/backend/executor/execMain.c modified +0 −5
src/backend/executor/execUtils.c modified +13 −5

Discussion