New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
PANIC: unprotected error in call to Lua API (not enough memory) on select from large space #562
Comments
Thank you for a bug report. |
1.6.3-487-gf4722a6
Probably you have broken build. |
Tarantool was installed from official debian repository (http://tarantool.org/dist/master/debian/ wheezy/main) Try to set larger value for slab_alloc_arena, 4.0 will be fine. |
It seems to be a luajit problem. Luajit crashes when someone creates a table with big amount of cdata objects with finalizers, tarantool tuples as an example. |
Please add expect-fail test case to our test suite. |
One way to fix this is to install torch with Lua 5.2 instead of LuaJIT, as described here: http://torch.ch/docs/getting-started.html#_ |
#0 0x4e68c9 in print_backtrace+9
#1 0x4ceb29 in tarantool_panic_handler+29
#2 0x500823 in lj_err_throw+73
#3 0x500a1b in lj_err_mem+3b
#4 0x500478 in lj_mem_realloc+48
#5 0x502d35 in lj_tab_resize+f5
#6 0x5030ad in rehashtab+1ad
#7 0x4fff5d in gc_onestep+59d
#8 0x500134 in lj_gc_step+54
#9 0x50d368 in lua_pushcclosure+e8
#10 0x4c0b63 in box_lua_call+43
#11 0x4bf249 in box_process_call+129
#12 0x410b42 in _ZL15tx_process_callP4cmsg+d2
#13 0x4e8194 in cmsg_deliver+14
#14 0x4e8d19 in fiber_pool_f+c9
#15 0x40e73c in _ZL16fiber_cxx_invokePFiP13__va_list_tagES0_+c
#16 0x4e3630 in fiber_loop+30
#17 0x613f3f in coro_init+3f
#18 (nil) in +3f
2018-03-24 06:08:56.351 [24160] main/134492/main C> not enough memory
tuple example:
before dead situation ( |
Should be finally fixed when LuaJIT/LuaJIT@d5bbf9c is backported. |
Wow, it's been a while. Thanks for fixing. |
Thanks to Maxim Kokryashkin. LuaJIT#1034 (cherry-picked from commit d5bbf9c) This patch fixes the same issue with frame, as the previous one, but now for the table overflow error in the `err_msgv` function. The test for the problem uses the table of GC finalizers, although they are not required to reproduce the issue. They only used to make the test as simple as possible. Resolves tarantool/tarantool#562 Resolves tarantool/tarantool#8652 Part of tarantool/tarantool#8825
Thanks to Maxim Kokryashkin. LuaJIT#1034 (cherry-picked from commit d5bbf9c) This patch fixes the same issue with frame, as the previous one, but now for the table overflow error in the `err_msgv` function. The test for the problem uses the table of GC finalizers, although they are not required to reproduce the issue. They only used to make the test as simple as possible. Resolves tarantool/tarantool#562 Part of tarantool/tarantool#8825
Thanks to Maxim Kokryashkin. (cherry-picked from commit d5bbf9c) This patch fixes the same issue with frame, as the previous one, but now for the table overflow error in the `err_msgv` function. The test for the problem uses the table of GC finalizers, although they are not required to reproduce the issue. They only used to make the test as simple as possible. Resolves tarantool/tarantool#562 Part of tarantool/tarantool#8825
Thanks to Maxim Kokryashkin. (cherry-picked from commit d5bbf9c) This patch fixes the same issue with frame, as the previous one, but now for the table overflow error in the `err_msgv` function. The test for the problem uses the table of GC finalizers, although they are not required to reproduce the issue. They only used to make the test as simple as possible. Resolves tarantool/tarantool#562 Part of tarantool/tarantool#8825
Thanks to Maxim Kokryashkin. (cherry-picked from commit d5bbf9c) This patch fixes the same issue with frame, as the previous one, but now for the table overflow error in the `err_msgv` function. The test for the problem uses the table of GC finalizers, although they are not required to reproduce the issue. They only used to make the test as simple as possible. Resolves tarantool/tarantool#562 Part of tarantool/tarantool#8825
Fix frame for on-trace out-of-memory error. Fix frame for more types of on-trace error messages. Closes tarantool#562 Part of tarantool#8825 NO_DOC=LuaJIT bump NO_TEST=LuaJIT bump
Thanks to Maxim Kokryashkin. (cherry-picked from commit d5bbf9c) This patch fixes the same issue with frame, as the previous one, but now for the table overflow error in the `err_msgv` function. The test for the problem uses the table of GC finalizers, although they are not required to reproduce the issue. They only used to make the test as simple as possible. Resolves tarantool/tarantool#562 Part of tarantool/tarantool#8825
Thanks to Maxim Kokryashkin. (cherry-picked from commit d5bbf9c) This patch fixes the same issue with frame, as the previous one, but now for the table overflow error in the `err_msgv` function. The test for the problem uses the table of GC finalizers, although they are not required to reproduce the issue. They only used to make the test as simple as possible. Resolves tarantool/tarantool#562 Part of tarantool/tarantool#8825
Thanks to Maxim Kokryashkin. (cherry-picked from commit d5bbf9c) This patch fixes the same issue with frame, as the previous one, but now for the table overflow error in the `err_msgv` function. The test for the problem uses the table of GC finalizers, although they are not required to reproduce the issue. They only used to make the test as simple as possible. Resolves tarantool/tarantool#562 Part of tarantool/tarantool#8825
Fix frame for on-trace out-of-memory error. Fix frame for more types of on-trace error messages. Closes tarantool#562 Part of tarantool#8825 NO_DOC=LuaJIT bump NO_TEST=LuaJIT bump
Thanks to Maxim Kokryashkin. (cherry-picked from commit d5bbf9c) This patch fixes the same issue with the frame as the previous one, but now for the table overflow error in the `err_msgv` function. The test for the problem uses the table of GC finalizers, although they are not required to reproduce the issue. They are only used to make the test as simple as possible. Resolves tarantool/tarantool#562 Part of tarantool/tarantool#8825
Fix frame for on-trace out-of-memory error. Fix frame for more types of on-trace error messages. Closes tarantool#562 Part of tarantool#8825 NO_DOC=LuaJIT bump NO_TEST=LuaJIT bump
Thanks to Maxim Kokryashkin. (cherry-picked from commit d5bbf9c) This patch fixes the same issue with the frame as the previous one, but now for the table overflow error in the `err_msgv` function. The test for the problem uses the table of GC finalizers, although they are not required to reproduce the issue. They are only used to make the test as simple as possible. Maxim Kokryashkin: * added the description and the test for the problem Resolves tarantool/tarantool#562 Part of tarantool/tarantool#8825 Reviewed-by: Sergey Bronnikov <sergeyb@tarantool.org> Reviewed-by: Sergey Kaplun <skaplun@tarantool.org> Signed-off-by: Igor Munkin <imun@tarantool.org>
* Handle table unsinking in the presence of IRFL_TAB_NOMM. * Fix handling of instable types in TNEW/TDUP load forwarding. * Fix frame for more types of on-trace error messages. * Fix frame for on-trace out-of-memory error. * Fix predict_next() in parser (again). * Always exit after machine code page protection change fails. Closes tarantool#562 Part of tarantool#8825 NO_DOC=LuaJIT submodule bump NO_TEST=LuaJIT submodule bump
* test: fix fix-mips64-spare-side-exit-patching * test: fix `fillmcode()` generator helper * MIPS: Fix "bad FP FLOAD" assertion. * Handle table unsinking in the presence of IRFL_TAB_NOMM. * Fix handling of instable types in TNEW/TDUP load forwarding. * Fix frame for more types of on-trace error messages. * Fix frame for on-trace out-of-memory error. * Fix predict_next() in parser (again). * Always exit after machine code page protection change fails. Closes tarantool#562 Part of tarantool#8825 NO_DOC=LuaJIT submodule bump NO_TEST=LuaJIT submodule bump
* test: fix fix-mips64-spare-side-exit-patching * test: fix `fillmcode()` generator helper * MIPS: Fix "bad FP FLOAD" assertion. * Handle table unsinking in the presence of IRFL_TAB_NOMM. * Fix handling of instable types in TNEW/TDUP load forwarding. * Fix frame for more types of on-trace error messages. * Fix frame for on-trace out-of-memory error. * Fix predict_next() in parser (again). * Always exit after machine code page protection change fails. Closes tarantool#562 Part of tarantool#8825 NO_DOC=LuaJIT submodule bump NO_TEST=LuaJIT submodule bump
* test: fix fix-mips64-spare-side-exit-patching * test: fix `fillmcode()` generator helper * MIPS: Fix "bad FP FLOAD" assertion. * Handle table unsinking in the presence of IRFL_TAB_NOMM. * Fix handling of instable types in TNEW/TDUP load forwarding. * Fix frame for more types of on-trace error messages. * Fix frame for on-trace out-of-memory error. * Fix predict_next() in parser (again). * Always exit after machine code page protection change fails. Closes #562 Part of #8825 NO_DOC=LuaJIT submodule bump NO_TEST=LuaJIT submodule bump
The issue is finally resolved in scope of tarantool/luajit@7b98314 and submodule is bumped in scope of fcb41bb. |
Tarantool crashes on select from a large space:
In interactive mode run:
(I used hash to suppress output if Tarantool will not crash)
I got:
After restart I got same error, but Tarantool did'nt shutdown, it just stopped to react.
tarantool: version 1.6.3-341-gf82473f
The text was updated successfully, but these errors were encountered: