Hi, Sergey,
thanks for the patch! LGTM with a minor comment below.
Sergey
<snipped>
s/concated/concatenated/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'
<snipped>