[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