[Tarantool-patches] [PATCH luajit] sysprof: disable runtime host symtab updates
Igor Munkin
imun at tarantool.org
Thu Feb 15 16:40:32 MSK 2024
Max,
I've checked the patchset into all long-term branches in
tarantool/luajit and bumped a new version in master, release/3.0 and
release/2.11.
On 08.12.23, Maksim Kokryashkin via Tarantool-patches wrote:
> From: Maxim Kokryashkin <m.kokryashkin at tarantool.org>
>
> The symtab update for newly loaded shared libraries requires
> memory allocation, which is not signal-safe and can cause
> crashes. Updating symtab in a VM hook is not a viable option
> either, as there are no guarantees that the symbol will be
> dumped before its address is streamed. This patch completely
> disables the runtime updates of the symtab for host symbols.
> That means all Lua-C modules, FFI modules, and shared libraries
> must be loaded before starting the profiler.
>
> There is no test along with the patch for two main reasons:
> 1. The signal should land on an instruction inside the allocator
> such that the second allocator call would cause a crash because of
> an inconsistent inner state. Although we have ptrace-based
> machinery for testing, the control is not that fine-grained. The
> only option we have left is to rely on empirical offsets, which
> is not a robust solution. Moreover, it is possible to build LuaJIT
> with `malloc` as an allocator, and the test should be adapted to
> that too. Needless to say, malloc sources may differ from
> platform to platform, making the test unreliable.
>
> 2. Regression is unlikely here since this patch removes the only
> call that could allocate memory inside the signal handler.
>
> Resolves tarantool/tarantool#8140
> ---
> Branch: https://github.com/tarantool/luajit/tree/fckxorg/gh-8140-crash-in-allocator
> Issue: https://github.com/tarantool/tarantool/issues/8140
> PR: https://github.com/tarantool/tarantool/pull/9460
>
> src/lj_sysprof.c | 9 +++++----
> 1 file changed, 5 insertions(+), 4 deletions(-)
>
<snipped>
> --
> 2.39.3 (Apple Git-145)
>
--
Best regards,
IM
More information about the Tarantool-patches
mailing list