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
app-luattest/http_client_test.lua
fails after Lua JIT update
#8718
Comments
locker
added a commit
to locker/tarantool
that referenced
this issue
May 31, 2023
We'll enable it when tarantool#8718 is fixed. NO_DOC=test NO_CHANGELOG=test
locker
added a commit
to locker/tarantool
that referenced
this issue
May 31, 2023
We'll enable it when tarantool#8718 is fixed. NO_DOC=test NO_CHANGELOG=test
locker
added a commit
that referenced
this issue
May 31, 2023
We'll enable it when #8718 is fixed. NO_DOC=test NO_CHANGELOG=test
10 tasks
Buristan
pushed a commit
to tarantool/luajit
that referenced
this issue
Jun 8, 2023
Reported by Ryan Lucia. (cherry-picked from commit 2801500) Use-def analizis for BC_VARG has to strong limit for the top/maxslot, so no slots may considered as used. This leads to addititional SLOAD on trace with incorrect value used later. This patch disables the use-def analisis for BC_VARG as NIY. Sergey Kaplun: * added the description and the test for the problem Part of tarantool/tarantool#8516 Relates to tarantool/tarantool#8718
Buristan
pushed a commit
to tarantool/luajit
that referenced
this issue
Jun 9, 2023
Reported by Ryan Lucia. (cherry-picked from commit 2801500) Use-def analizis for BC_VARG has to strong limit for the top/maxslot, so no slots may considered as used. This leads to addititional SLOAD on trace with incorrect value used later. This patch disables the use-def analisis for BC_VARG as NIY. Sergey Kaplun: * added the description and the test for the problem Part of tarantool/tarantool#8516 Relates to tarantool/tarantool#8718
Buristan
pushed a commit
to tarantool/luajit
that referenced
this issue
Jun 9, 2023
Reported by Shmuel Zeigerman. (cherry-picked from commit 0e53a31) Use-def analysis for BC_FUNCV may consider slots greater than amount of non-vararg parameters as dead slots due to early return for BC_RET emitted before usage of BC_VARG. This patch restricts the maxslot to be analyzed in such case with amount of parameters for the prototype of the current function being recorded. Sergey Kaplun: * added the description and the test for the problem Part of tarantool/tarantool#8516 Relates to tarantool/tarantool#8718
Buristan
pushed a commit
to tarantool/luajit
that referenced
this issue
Jun 21, 2023
Reported by Ryan Lucia. (cherry-picked from commit 2801500) Use-def analysis for BC_VARG has to strong limit for the top/maxslot, so no slots may be considered as used. This leads to an addititional SLOAD on the trace with an incorrect value used later. This patch disables the use-def analysis for BC_VARG as NIY. Sergey Kaplun: * added the description and the test for the problem Part of tarantool/tarantool#8516 Relates to tarantool/tarantool#8718
Buristan
pushed a commit
to tarantool/luajit
that referenced
this issue
Jun 21, 2023
Reported by Shmuel Zeigerman. (cherry-picked from commit 0e53a31) Use-def analysis for BC_FUNCV may consider slots greater than the amount of non-vararg parameters as dead slots due to the early return (see case `BCMlit`) for BC_RET emitted before usage of BC_VARG. This patch restricts the maxslot to be analyzed in such case with the amount of parameters for the prototype of the current function being recorded. Sergey Kaplun: * added the description and the test for the problem Part of tarantool/tarantool#8516 Relates to tarantool/tarantool#8718
Buristan
pushed a commit
to tarantool/luajit
that referenced
this issue
Jun 23, 2023
Reported by Ryan Lucia. (cherry-picked from commit 2801500) Use-def analysis for BC_VARG has too strong limit for the top/maxslot, so no slots may be considered as used. This leads to an addititional SLOAD on the trace with an incorrect value used later. This patch disables the use-def analysis for BC_VARG as NIY. Sergey Kaplun: * added the description and the test for the problem Part of tarantool/tarantool#8516 Relates to tarantool/tarantool#8718
Buristan
pushed a commit
to tarantool/luajit
that referenced
this issue
Jun 23, 2023
Reported by Shmuel Zeigerman. (cherry-picked from commit 0e53a31) Use-def analysis for BC_FUNCV may consider slots greater than the amount of non-vararg parameters as dead slots due to the early return (see case `BCMlit`) for BC_RET emitted before usage of BC_VARG. This patch restricts the maxslot to be analyzed in such case with the amount of parameters for the prototype of the current function being recorded. Sergey Kaplun: * added the description and the test for the problem Part of tarantool/tarantool#8516 Relates to tarantool/tarantool#8718
Buristan
pushed a commit
to tarantool/luajit
that referenced
this issue
Jun 28, 2023
Reported by Ryan Lucia. (cherry-picked from commit 2801500) Use-def analysis for BC_VARG has too strong limit for the top/maxslot, so no slots may be considered as used. This leads to an addititional SLOAD on the trace with an incorrect value used later. This patch disables the use-def analysis for BC_VARG as NIY. Sergey Kaplun: * added the description and the test for the problem Part of tarantool/tarantool#8516 Relates to tarantool/tarantool#8718
Buristan
pushed a commit
to tarantool/luajit
that referenced
this issue
Jun 28, 2023
Reported by Shmuel Zeigerman. (cherry-picked from commit 0e53a31) Use-def analysis for BC_FUNCV may consider slots greater than the amount of non-vararg parameters as dead slots due to the early return (see case `BCMlit`) for BC_RET emitted before usage of BC_VARG. This patch restricts the maxslot to be analyzed in such case with the amount of parameters for the prototype of the current function being recorded. Sergey Kaplun: * added the description and the test for the problem Part of tarantool/tarantool#8516 Relates to tarantool/tarantool#8718
igormunkin
pushed a commit
to tarantool/luajit
that referenced
this issue
Jul 4, 2023
Reported by Ryan Lucia. (cherry-picked from commit 2801500) Use-def analysis for BC_VARG has too strong limit for the top/maxslot, so no slots may be considered as used. This leads to an additional SLOAD on the trace with an incorrect value used later. This patch disables the use-def analysis for BC_VARG as NYI. Sergey Kaplun: * added the description and the test for the problem Part of tarantool/tarantool#8516 Relates to tarantool/tarantool#8718
igormunkin
pushed a commit
to tarantool/luajit
that referenced
this issue
Jul 4, 2023
Reported by Shmuel Zeigerman. (cherry-picked from commit 0e53a31) Use-def analysis for BC_FUNCV may consider slots greater than the amount of non-vararg parameters as dead slots due to the early return (see case `BCMlit`) for BC_RET or BC_JMP emitted before usage of BC_VARG. This patch restricts the maxslot to be analyzed in such case with the amount of parameters for the prototype of the current function being recorded. Sergey Kaplun: * added the description and the test for the problem Part of tarantool/tarantool#8516 Relates to tarantool/tarantool#8718
igormunkin
pushed a commit
to tarantool/luajit
that referenced
this issue
Jul 4, 2023
Reported by Ryan Lucia. (cherry-picked from commit 2801500) Use-def analysis for BC_VARG has too strong limit for the top/maxslot, so no slots may be considered as used. This leads to an additional SLOAD on the trace with an incorrect value used later. This patch disables the use-def analysis for BC_VARG as NYI. Sergey Kaplun: * added the description and the test for the problem Resolves tarantool/tarantool#8718 Part of tarantool/tarantool#8516
igormunkin
pushed a commit
to tarantool/luajit
that referenced
this issue
Jul 4, 2023
Reported by Shmuel Zeigerman. (cherry-picked from commit 0e53a31) Use-def analysis for BC_FUNCV may consider slots greater than the amount of non-vararg parameters as dead slots due to the early return (see case `BCMlit`) for BC_RET or BC_JMP emitted before usage of BC_VARG. This patch restricts the maxslot to be analyzed in such case with the amount of parameters for the prototype of the current function being recorded. Sergey Kaplun: * added the description and the test for the problem Part of tarantool/tarantool#8516 Relates to tarantool/tarantool#8718
igormunkin
pushed a commit
to tarantool/luajit
that referenced
this issue
Jul 4, 2023
Reported by Ryan Lucia. (cherry-picked from commit 2801500) Use-def analysis for BC_VARG has too strong limit for the top/maxslot, so no slots may be considered as used. This leads to an additional SLOAD on the trace with an incorrect value used later. This patch disables the use-def analysis for BC_VARG as NYI. Sergey Kaplun: * added the description and the test for the problem Resolves tarantool/tarantool#8718 Part of tarantool/tarantool#8516 Reviewed-by: Maxim Kokryashkin <m.kokryashkin@tarantool.org> Reviewed-by: Igor Munkin <imun@tarantool.org> Signed-off-by: Igor Munkin <imun@tarantool.org> (cherry picked from commit a2ce369)
igormunkin
pushed a commit
to tarantool/luajit
that referenced
this issue
Jul 4, 2023
Reported by Shmuel Zeigerman. (cherry-picked from commit 0e53a31) Use-def analysis for BC_FUNCV may consider slots greater than the amount of non-vararg parameters as dead slots due to the early return (see case `BCMlit`) for BC_RET or BC_JMP emitted before usage of BC_VARG. This patch restricts the maxslot to be analyzed in such case with the amount of parameters for the prototype of the current function being recorded. Sergey Kaplun: * added the description and the test for the problem Part of tarantool/tarantool#8516 Relates to tarantool/tarantool#8718 Reviewed-by: Maxim Kokryashkin <m.kokryashkin@tarantool.org> Reviewed-by: Igor Munkin <imun@tarantool.org> Signed-off-by: Igor Munkin <imun@tarantool.org> (cherry picked from commit 7fa0037)
igormunkin
pushed a commit
to tarantool/luajit
that referenced
this issue
Jul 4, 2023
Reported by Shmuel Zeigerman. (cherry-picked from commit 0e53a31) Use-def analysis for BC_FUNCV may consider slots greater than the amount of non-vararg parameters as dead slots due to the early return (see case `BCMlit`) for BC_RET or BC_JMP emitted before usage of BC_VARG. This patch restricts the maxslot to be analyzed in such case with the amount of parameters for the prototype of the current function being recorded. Sergey Kaplun: * added the description and the test for the problem Part of tarantool/tarantool#8516 Relates to tarantool/tarantool#8718 Reviewed-by: Maxim Kokryashkin <m.kokryashkin@tarantool.org> Reviewed-by: Igor Munkin <imun@tarantool.org> Signed-off-by: Igor Munkin <imun@tarantool.org>
igormunkin
pushed a commit
to tarantool/luajit
that referenced
this issue
Jul 4, 2023
Reported by Ryan Lucia. (cherry-picked from commit 2801500) Use-def analysis for BC_VARG has too strong limit for the top/maxslot, so no slots may be considered as used. This leads to an additional SLOAD on the trace with an incorrect value used later. This patch disables the use-def analysis for BC_VARG as NYI. Sergey Kaplun: * added the description and the test for the problem Resolves tarantool/tarantool#8718 Part of tarantool/tarantool#8516 Reviewed-by: Maxim Kokryashkin <m.kokryashkin@tarantool.org> Reviewed-by: Igor Munkin <imun@tarantool.org> Signed-off-by: Igor Munkin <imun@tarantool.org> (cherry picked from commit a2ce369)
igormunkin
pushed a commit
to tarantool/luajit
that referenced
this issue
Jul 4, 2023
Reported by Shmuel Zeigerman. (cherry-picked from commit 0e53a31) Use-def analysis for BC_FUNCV may consider slots greater than the amount of non-vararg parameters as dead slots due to the early return (see case `BCMlit`) for BC_RET or BC_JMP emitted before usage of BC_VARG. This patch restricts the maxslot to be analyzed in such case with the amount of parameters for the prototype of the current function being recorded. Sergey Kaplun: * added the description and the test for the problem Part of tarantool/tarantool#8516 Relates to tarantool/tarantool#8718 Reviewed-by: Maxim Kokryashkin <m.kokryashkin@tarantool.org> Reviewed-by: Igor Munkin <imun@tarantool.org> Signed-off-by: Igor Munkin <imun@tarantool.org> (cherry picked from commit 7fa0037)
igormunkin
added a commit
to igormunkin/tarantool
that referenced
this issue
Jul 4, 2023
* test: fix flaky <unit-jit-parse.test.lua> * Fix use-def analysis for vararg functions. * Fix use-def analysis for BC_VARG. * Fix TNEW load forwarding with instable types. * Fix memory probing allocator to check for valid end address, too. * Another fix for lua_yield() from C hook. * Fix lua_yield() from C hook. * Fix saved bytecode encapsulated in ELF objects. * x64: Fix 64 bit shift code generation. * Fix canonicalization of +-0.0 keys for IR_NEWREF. * test: add utility for parsing `jit.dump` * test: split utils.lua into several modules * test: rewrite lj-49-bad-lightuserdata test in C * test: rewrite misclib-sysprof-capi test in C * test: rewrite misclib-getmetrics-capi test in C * test: introduce utils.h helper for C tests * test: introduce module for C tests * test: fix setting of {DY}LD_LIBRARY_PATH variables * build: fix build with LUAJIT_USE_GDBJIT enabled Closes tarantool#8718 Part of tarantool#7900 Part of tarantool#8516 NO_DOC=LuaJIT submodule bump NO_TEST=LuaJIT submodule bump
igormunkin
added a commit
to igormunkin/tarantool
that referenced
this issue
Jul 4, 2023
* test: fix flaky <unit-jit-parse.test.lua> * Fix use-def analysis for vararg functions. * Fix use-def analysis for BC_VARG. * Fix TNEW load forwarding with instable types. * Fix memory probing allocator to check for valid end address, too. * Another fix for lua_yield() from C hook. * Fix lua_yield() from C hook. * x64: Fix 64 bit shift code generation. * Fix canonicalization of +-0.0 keys for IR_NEWREF. * test: add utility for parsing `jit.dump` * test: split utils.lua into several modules * test: rewrite lj-49-bad-lightuserdata test in C * test: rewrite misclib-sysprof-capi test in C * test: rewrite misclib-getmetrics-capi test in C * test: introduce utils.h helper for C tests * test: introduce module for C tests * test: fix setting of {DY}LD_LIBRARY_PATH variables * build: fix build with LUAJIT_USE_GDBJIT enabled * ci: update the branch name for Tarantool 2.10 Closes tarantool#8718 Part of tarantool#7900 Part of tarantool#8516 NO_DOC=LuaJIT submodule bump NO_TEST=LuaJIT submodule bump
igormunkin
added a commit
to igormunkin/tarantool
that referenced
this issue
Jul 4, 2023
* test: fix flaky <unit-jit-parse.test.lua> * Fix use-def analysis for vararg functions. * Fix use-def analysis for BC_VARG. * Fix TNEW load forwarding with instable types. * Fix memory probing allocator to check for valid end address, too. * Another fix for lua_yield() from C hook. * Fix lua_yield() from C hook. * Fix saved bytecode encapsulated in ELF objects. * x64: Fix 64 bit shift code generation. * Fix canonicalization of +-0.0 keys for IR_NEWREF. * test: add utility for parsing `jit.dump` * test: split utils.lua into several modules * test: rewrite lj-49-bad-lightuserdata test in C * test: rewrite misclib-sysprof-capi test in C * test: rewrite misclib-getmetrics-capi test in C * test: introduce utils.h helper for C tests * test: introduce module for C tests * test: fix setting of {DY}LD_LIBRARY_PATH variables * build: fix build with LUAJIT_USE_GDBJIT enabled * ci: update the branch name for Tarantool 2.11 Closes tarantool#8718 Part of tarantool#7900 Part of tarantool#8516 NO_DOC=LuaJIT submodule bump NO_TEST=LuaJIT submodule bump
This was referenced Jul 4, 2023
igormunkin
added a commit
to igormunkin/tarantool
that referenced
this issue
Jul 4, 2023
* test: fix flaky <unit-jit-parse.test.lua> * Fix use-def analysis for vararg functions. * Fix use-def analysis for BC_VARG. * Fix TNEW load forwarding with instable types. * Fix memory probing allocator to check for valid end address, too. * Another fix for lua_yield() from C hook. * Fix lua_yield() from C hook. * Fix saved bytecode encapsulated in ELF objects. * x64: Fix 64 bit shift code generation. * Fix canonicalization of +-0.0 keys for IR_NEWREF. * test: add utility for parsing `jit.dump` * test: split utils.lua into several modules * test: rewrite lj-49-bad-lightuserdata test in C * test: rewrite misclib-sysprof-capi test in C * test: rewrite misclib-getmetrics-capi test in C * test: introduce utils.h helper for C tests * test: introduce module for C tests * test: fix setting of {DY}LD_LIBRARY_PATH variables * build: fix build with LUAJIT_USE_GDBJIT enabled Closes tarantool#8718 Part of tarantool#7900 Part of tarantool#8516 NO_DOC=LuaJIT submodule bump NO_TEST=LuaJIT submodule bump
igormunkin
added a commit
to igormunkin/tarantool
that referenced
this issue
Jul 4, 2023
* test: fix flaky <unit-jit-parse.test.lua> * Fix use-def analysis for vararg functions. * Fix use-def analysis for BC_VARG. * Fix TNEW load forwarding with instable types. * Fix memory probing allocator to check for valid end address, too. * Another fix for lua_yield() from C hook. * Fix lua_yield() from C hook. * Fix saved bytecode encapsulated in ELF objects. * x64: Fix 64 bit shift code generation. * Fix canonicalization of +-0.0 keys for IR_NEWREF. * test: add utility for parsing `jit.dump` * test: split utils.lua into several modules * test: rewrite lj-49-bad-lightuserdata test in C * test: rewrite misclib-sysprof-capi test in C * test: rewrite misclib-getmetrics-capi test in C * test: introduce utils.h helper for C tests * test: introduce module for C tests * test: fix setting of {DY}LD_LIBRARY_PATH variables * build: fix build with LUAJIT_USE_GDBJIT enabled * ci: update the branch name for Tarantool 2.11 Closes tarantool#8718 Part of tarantool#7900 Part of tarantool#8516 NO_DOC=LuaJIT submodule bump NO_TEST=LuaJIT submodule bump
igormunkin
added a commit
to igormunkin/tarantool
that referenced
this issue
Jul 4, 2023
* test: fix flaky <unit-jit-parse.test.lua> * Fix use-def analysis for vararg functions. * Fix use-def analysis for BC_VARG. * Fix TNEW load forwarding with instable types. * Fix memory probing allocator to check for valid end address, too. * Another fix for lua_yield() from C hook. * Fix lua_yield() from C hook. * x64: Fix 64 bit shift code generation. * Fix canonicalization of +-0.0 keys for IR_NEWREF. * test: add utility for parsing `jit.dump` * test: split utils.lua into several modules * test: rewrite lj-49-bad-lightuserdata test in C * test: rewrite misclib-sysprof-capi test in C * test: rewrite misclib-getmetrics-capi test in C * test: introduce utils.h helper for C tests * test: introduce module for C tests * test: fix setting of {DY}LD_LIBRARY_PATH variables * build: fix build with LUAJIT_USE_GDBJIT enabled * ci: update the branch name for Tarantool 2.10 Closes tarantool#8718 Part of tarantool#7900 Part of tarantool#8516 NO_DOC=LuaJIT submodule bump NO_TEST=LuaJIT submodule bump
igormunkin
added a commit
that referenced
this issue
Jul 4, 2023
* test: fix flaky <unit-jit-parse.test.lua> * Fix use-def analysis for vararg functions. * Fix use-def analysis for BC_VARG. * Fix TNEW load forwarding with instable types. * Fix memory probing allocator to check for valid end address, too. * Another fix for lua_yield() from C hook. * Fix lua_yield() from C hook. * Fix saved bytecode encapsulated in ELF objects. * x64: Fix 64 bit shift code generation. * Fix canonicalization of +-0.0 keys for IR_NEWREF. * test: add utility for parsing `jit.dump` * test: split utils.lua into several modules * test: rewrite lj-49-bad-lightuserdata test in C * test: rewrite misclib-sysprof-capi test in C * test: rewrite misclib-getmetrics-capi test in C * test: introduce utils.h helper for C tests * test: introduce module for C tests * test: fix setting of {DY}LD_LIBRARY_PATH variables * build: fix build with LUAJIT_USE_GDBJIT enabled Closes #8718 Part of #7900 Part of #8516 NO_DOC=LuaJIT submodule bump NO_TEST=LuaJIT submodule bump
igormunkin
added a commit
that referenced
this issue
Jul 4, 2023
* test: fix flaky <unit-jit-parse.test.lua> * Fix use-def analysis for vararg functions. * Fix use-def analysis for BC_VARG. * Fix TNEW load forwarding with instable types. * Fix memory probing allocator to check for valid end address, too. * Another fix for lua_yield() from C hook. * Fix lua_yield() from C hook. * Fix saved bytecode encapsulated in ELF objects. * x64: Fix 64 bit shift code generation. * Fix canonicalization of +-0.0 keys for IR_NEWREF. * test: add utility for parsing `jit.dump` * test: split utils.lua into several modules * test: rewrite lj-49-bad-lightuserdata test in C * test: rewrite misclib-sysprof-capi test in C * test: rewrite misclib-getmetrics-capi test in C * test: introduce utils.h helper for C tests * test: introduce module for C tests * test: fix setting of {DY}LD_LIBRARY_PATH variables * build: fix build with LUAJIT_USE_GDBJIT enabled * ci: update the branch name for Tarantool 2.11 Closes #8718 Part of #7900 Part of #8516 NO_DOC=LuaJIT submodule bump NO_TEST=LuaJIT submodule bump
igormunkin
added a commit
that referenced
this issue
Jul 4, 2023
* test: fix flaky <unit-jit-parse.test.lua> * Fix use-def analysis for vararg functions. * Fix use-def analysis for BC_VARG. * Fix TNEW load forwarding with instable types. * Fix memory probing allocator to check for valid end address, too. * Another fix for lua_yield() from C hook. * Fix lua_yield() from C hook. * x64: Fix 64 bit shift code generation. * Fix canonicalization of +-0.0 keys for IR_NEWREF. * test: add utility for parsing `jit.dump` * test: split utils.lua into several modules * test: rewrite lj-49-bad-lightuserdata test in C * test: rewrite misclib-sysprof-capi test in C * test: rewrite misclib-getmetrics-capi test in C * test: introduce utils.h helper for C tests * test: introduce module for C tests * test: fix setting of {DY}LD_LIBRARY_PATH variables * build: fix build with LUAJIT_USE_GDBJIT enabled * ci: update the branch name for Tarantool 2.10 Closes #8718 Part of #7900 Part of #8516 NO_DOC=LuaJIT submodule bump NO_TEST=LuaJIT submodule bump
igormunkin
added a commit
to igormunkin/tarantool
that referenced
this issue
Jul 27, 2023
This patch reverts the temporary fix introduced in commit 53c94bc ("test: disable Lua JIT in app-luatest/http_client_test") since the issues with invalid traces generation for vararg functions are resolved, so JIT machinery can be enabled back then. Follows up tarantool#8718 Relates to tarantool#8516 NO_DOC=test NO_CHANGELOG=test
igormunkin
added a commit
that referenced
this issue
Jul 28, 2023
This patch reverts the temporary fix introduced in commit 53c94bc ("test: disable Lua JIT in app-luatest/http_client_test") since the issues with invalid traces generation for vararg functions are resolved, so JIT machinery can be enabled back then. Follows up #8718 Relates to #8516 NO_DOC=test NO_CHANGELOG=test
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Only the master (3.0) branch seems to be affected. I couldn't reproduce the issue on 2.11 or 2.10.
After commit cde911d was pushed,
app-luatest/http_client_test.lua
started to fail on CI with the following errors:The issue can be reproduced locally with (it fails quite often but not always so you might need to run it a few times):
Disabling Lua JIT in the test helps.
Patch disabling Lua JIT in the test
NOTE: We disabled Lua JIT in the test in commit 53c94bc. Please roll it back as soon as the bug is fixed.
If you apply the following patch to the test you'll get a more verbose failure log:
Patch making the test more verbose
Note that the
url
contains a number but it shouldn't be possible because it's initialized with a string:tarantool/test/app-luatest/http_client_test.lua
Lines 50 to 56 in 2afde5b
The text was updated successfully, but these errors were encountered: