[Tarantool-patches] [PATCH luajit 2/3] Restore state when recording __concat metamethod throws OOM.
Sergey Bronnikov
sergeyb at tarantool.org
Tue Mar 11 15:01:55 MSK 2025
Hi, Sergey,
thanks for the patch! LGTM with a minor comment below.
Sergey
On 10.03.2025 17:51, Sergey Kaplun wrote:
<snipped>
> diff --git a/test/tarantool-tests/lj-1298-oom-on-concat-recording.test.lua b/test/tarantool-tests/lj-1298-oom-on-concat-recording.test.lua
> new file mode 100644
> index 00000000..961df798
> --- /dev/null
> +++ b/test/tarantool-tests/lj-1298-oom-on-concat-recording.test.lua
> @@ -0,0 +1,53 @@
> +local tap = require('tap')
> +
> +-- Test file to demonstrate unbalanced Lua stack after instruction
> +-- recording due to throwing an OOM error at the moment of
> +-- recording without restoring the Lua stack back.
> +-- See also:https://github.com/LuaJIT/LuaJIT/issues/1298.
> +
> +local test = tap.test('lj-1298-oom-on-concat-recording'):skipcond({
> + ['Test requires JIT enabled'] = not jit.status(),
> +})
> +
> +local allocinject = require('allocinject')
> +
> +test:plan(2)
> +
> +jit.opt.start('hotloop=1')
> +
> +-- Allocation limit to return `NULL`.
> +local ALLOC_LIMIT = 2048
> +
> +local bigstr = string.rep('x', ALLOC_LIMIT)
> +local __concat = function()
> + return 'concated'
s/concated/concatenated/
<snipped>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.tarantool.org/pipermail/tarantool-patches/attachments/20250311/142d6b96/attachment.htm>
More information about the Tarantool-patches
mailing list