Hi, Sergey, thanks for the patch! LGTM with a minor comment below. Sergey On 10.03.2025 17:51, Sergey Kaplun wrote: > 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/