-
Notifications
You must be signed in to change notification settings - Fork 0
luajit: box/bitset.test.lua flaky fails on Mac OS #235
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
Comments
At least miscompares are reproduced with Applied raptorjit/raptorjit#246 (see also relevant openresty/luajit2 patch, it adds a check for LJ_GC64, see also the issue tarantool/tarantool#4072). Still able to catch a segfault at least on Mac OS, observed miscompares on Linux. Maybe rarely on Linux, but don't sure. |
In test-run repository added ability to check per suite in suite.ini configuration file 'fragile_retries' option, which sets the number of accepted reruns of the test failed from 'fragile' list. Also all suite.ini files which consisted of fragile lists were updated with this option. Added ability to check failed tests w/ fragile list to be sure that the current fail equal to the issue mentioned in the fragile list. Fragile list should consist of the results files checksums with mentioned issues in the format: fragile = <basename of the test> ; gh-<issue> md5sum:<checksum> Added ability to use fragile list in JSON format from 'suite.ini' files. For now it is possible to set fragile tests in JSON format: fragile = { "retries": 10, "tests": { "bitset.test.lua": { "issues": [ "gh-4095" ], "checksums": [ "050af3a99561a724013995668a4bc71c", "f34be60193cfe9221d3fe50df657e9d3" ] } }} Closes #5050
In test-run repository added ability to check per suite in suite.ini configuration file 'fragile_retries' option, which sets the number of accepted reruns of the test failed from 'fragile' list. Also all suite.ini files which consisted of fragile lists were updated with this option. Added ability to check failed tests w/ fragile list to be sure that the current fail equal to the issue mentioned in the fragile list. Fragile list should consist of the results files checksums with mentioned issues in the format: fragile = <basename of the test> ; gh-<issue> md5sum:<checksum> Added ability to use fragile list in JSON format from 'suite.ini' files. For now it is possible to set fragile tests in JSON format: fragile = { "retries": 10, "tests": { "bitset.test.lua": { "issues": [ "gh-4095" ], "checksums": [ "050af3a99561a724013995668a4bc71c", "f34be60193cfe9221d3fe50df657e9d3" ] } }} Closes #5050
In test-run repository added ability to check per suite in suite.ini configuration file 'fragile_retries' option, which sets the number of accepted reruns of the test failed from 'fragile' list. Also all suite.ini files which consisted of fragile lists were updated with this option. Added ability to check failed tests w/ fragile list to be sure that the current fail equal to the issue mentioned in the fragile list. Fragile list should consist of the results files checksums with mentioned issues in the format: fragile = <basename of the test> ; gh-<issue> md5sum:<checksum> Added ability to use fragile list in JSON format from 'suite.ini' files. For now it is possible to set fragile tests in JSON format: fragile = { "retries": 10, "tests": { "bitset.test.lua": { "issues": [ "gh-4095" ], "checksums": [ "050af3a99561a724013995668a4bc71c", "f34be60193cfe9221d3fe50df657e9d3" ] } }} Closes #5050
In test-run repository added ability to check per suite in suite.ini configuration file 'fragile_retries' option, which sets the number of accepted reruns of the test failed from 'fragile' list. Also all suite.ini files which consisted of fragile lists were updated with this option. Added ability to check failed tests w/ fragile list to be sure that the current fail equal to the issue mentioned in the fragile list. Fragile list should consist of the results files checksums with mentioned issues in the format: fragile = <basename of the test> ; gh-<issue> md5sum:<checksum> Added ability to use fragile list in JSON format from 'suite.ini' files. For now it is possible to set fragile tests in JSON format: fragile = { "retries": 10, "tests": { "bitset.test.lua": { "issues": [ "gh-4095" ], "checksums": [ "050af3a99561a724013995668a4bc71c", "f34be60193cfe9221d3fe50df657e9d3" ] } }} Closes #5050
In test-run repository added ability to check per suite in suite.ini configuration file 'fragile_retries' option, which sets the number of accepted reruns of the test failed from 'fragile' list. Also all suite.ini files which consisted of fragile lists were updated with this option. Added ability to check failed tests w/ fragile list to be sure that the current fail equal to the issue mentioned in the fragile list. Fragile list should consist of the results files checksums with mentioned issues in the format: fragile = <basename of the test> ; gh-<issue> md5sum:<checksum> Added ability to use fragile list in JSON format from 'suite.ini' files. For now it is possible to set fragile tests in JSON format: fragile = { "retries": 10, "tests": { "bitset.test.lua": { "issues": [ "gh-4095" ], "checksums": [ "050af3a99561a724013995668a4bc71c", "f34be60193cfe9221d3fe50df657e9d3" ] } }} Closes #5050
In test-run implemented the new format of the fragile lists based on JSON format set as fragile option in 'suite.ini' files per each suite: fragile = { "retries": 10, "tests": { "bitset.test.lua": { "issues": [ "gh-4095" ], "checksums": [ "050af3a99561a724013995668a4bc71c", "f34be60193cfe9221d3fe50df657e9d3" ] } }} Added ability to check results file checksum on tests fail and compare with the checksums of the known issues mentioned in the fragile list. Also added ability to set 'retries' option, which sets the number of accepted reruns of the tests failed from 'fragile' list that have checksums on its fails. Closes #5050
In test-run implemented the new format of the fragile lists based on JSON format set as fragile option in 'suite.ini' files per each suite: fragile = { "retries": 10, "tests": { "bitset.test.lua": { "issues": [ "gh-4095" ], "checksums": [ "050af3a99561a724013995668a4bc71c", "f34be60193cfe9221d3fe50df657e9d3" ] } }} Added ability to check results file checksum on tests fail and compare with the checksums of the known issues mentioned in the fragile list. Also added ability to set 'retries' option, which sets the number of accepted reruns of the tests failed from 'fragile' list that have checksums on its fails. Closes #5050
In test-run implemented the new format of the fragile lists based on JSON format set as fragile option in 'suite.ini' files per each suite: fragile = { "retries": 10, "tests": { "bitset.test.lua": { "issues": [ "gh-4095" ], "checksums": [ "050af3a99561a724013995668a4bc71c", "f34be60193cfe9221d3fe50df657e9d3" ] } }} Added ability to check results file checksum on tests fail and compare with the checksums of the known issues mentioned in the fragile list. Also added ability to set 'retries' option, which sets the number of accepted reruns of the tests failed from 'fragile' list that have checksums on its fails. Closes #5050
In test-run implemented the new format of the fragile lists based on JSON format set as fragile option in 'suite.ini' files per each suite: fragile = { "retries": 10, "tests": { "bitset.test.lua": { "issues": [ "gh-4095" ], "checksums": [ "050af3a99561a724013995668a4bc71c", "f34be60193cfe9221d3fe50df657e9d3" ] } }} Added ability to check results file checksum on tests fail and compare with the checksums of the known issues mentioned in the fragile list. Also added ability to set 'retries' option, which sets the number of accepted reruns of the tests failed from 'fragile' list that have checksums on its fails. Closes #5050
In test-run implemented the new format of the fragile lists based on JSON format set as fragile option in 'suite.ini' files per each suite: fragile = { "retries": 10, "tests": { "bitset.test.lua": { "issues": [ "gh-4095" ], "checksums": [ "050af3a99561a724013995668a4bc71c", "f34be60193cfe9221d3fe50df657e9d3" ] } }} Added ability to check results file checksum on tests fail and compare with the checksums of the known issues mentioned in the fragile list. Also added ability to set 'retries' option, which sets the number of accepted reruns of the tests failed from 'fragile' list that have checksums on its fails. Closes #5050
In test-run implemented the new format of the fragile lists based on JSON format set as fragile option in 'suite.ini' files per each suite: fragile = { "retries": 10, "tests": { "bitset.test.lua": { "issues": [ "gh-4095" ], "checksums": [ "050af3a99561a724013995668a4bc71c", "f34be60193cfe9221d3fe50df657e9d3" ] } }} Added ability to check results file checksum on tests fail and compare with the checksums of the known issues mentioned in the fragile list. Also added ability to set 'retries' option, which sets the number of accepted reruns of the tests failed from 'fragile' list that have checksums on its fails. Closes #5050
In test-run implemented the new format of the fragile lists based on JSON format set as fragile option in 'suite.ini' files per each suite: fragile = { "retries": 10, "tests": { "bitset.test.lua": { "issues": [ "gh-4095" ], "checksums": [ "050af3a99561a724013995668a4bc71c", "f34be60193cfe9221d3fe50df657e9d3" ] } }} Added ability to check results file checksum on tests fail and compare with the checksums of the known issues mentioned in the fragile list. Also added ability to set 'retries' option, which sets the number of accepted reruns of the tests failed from 'fragile' list that have checksums on its fails. Closes #5050
In test-run implemented the new format of the fragile lists based on JSON format set as fragile option in 'suite.ini' files per each suite: fragile = { "retries": 10, "tests": { "bitset.test.lua": { "issues": [ "gh-4095" ], "checksums": [ "050af3a99561a724013995668a4bc71c", "f34be60193cfe9221d3fe50df657e9d3" ] } }} Added ability to check results file checksum on tests fail and compare with the checksums of the known issues mentioned in the fragile list. Also added ability to set 'retries' option, which sets the number of accepted reruns of the tests failed from 'fragile' list that have checksums on its fails. Closes #5050
In test-run implemented the new format of the fragile lists based on JSON format set as fragile option in 'suite.ini' files per each suite: fragile = { "retries": 10, "tests": { "bitset.test.lua": { "issues": [ "gh-4095" ], "checksums": [ "050af3a99561a724013995668a4bc71c", "f34be60193cfe9221d3fe50df657e9d3" ] } }} Added ability to check results file checksum on tests fail and compare with the checksums of the known issues mentioned in the fragile list. Also added ability to set 'retries' option, which sets the number of accepted reruns of the tests failed from 'fragile' list that have checksums on its fails. Closes #5050
In test-run implemented the new format of the fragile lists based on JSON format set as fragile option in 'suite.ini' files per each suite: fragile = { "retries": 10, "tests": { "bitset.test.lua": { "issues": [ "gh-4095" ], "checksums": [ "050af3a99561a724013995668a4bc71c", "f34be60193cfe9221d3fe50df657e9d3" ] } }} Added ability to check results file checksum on tests fail and compare with the checksums of the known issues mentioned in the fragile list. Also added ability to set 'retries' option, which sets the number of accepted reruns of the tests failed from 'fragile' list that have checksums on its fails. Closes #5050
In test-run implemented the new format of the fragile lists based on JSON format set as fragile option in 'suite.ini' files per each suite: fragile = { "retries": 10, "tests": { "bitset.test.lua": { "issues": [ "gh-4095" ], "checksums": [ "050af3a99561a724013995668a4bc71c", "f34be60193cfe9221d3fe50df657e9d3" ] } }} Added ability to check results file checksum on tests fail and compare with the checksums of the known issues mentioned in the fragile list. Also added ability to set 'retries' option, which sets the number of accepted reruns of the tests failed from 'fragile' list that have checksums on its fails. Closes #5050
In test-run implemented the new format of the fragile lists based on JSON format set as fragile option in 'suite.ini' files per each suite: fragile = { "retries": 10, "tests": { "bitset.test.lua": { "issues": [ "gh-4095" ], "checksums": [ "050af3a99561a724013995668a4bc71c", "f34be60193cfe9221d3fe50df657e9d3" ] } }} Added ability to check results file checksum on tests fail and compare with the checksums of the known issues mentioned in the fragile list. Also added ability to set 'retries' option, which sets the number of accepted reruns of the tests failed from 'fragile' list that have checksums on its fails. Closes #5050
In test-run implemented the new format of the fragile lists based on JSON format set as fragile option in 'suite.ini' files per each suite: fragile = { "retries": 10, "tests": { "bitset.test.lua": { "issues": [ "gh-4095" ], "checksums": [ "050af3a99561a724013995668a4bc71c", "f34be60193cfe9221d3fe50df657e9d3" ] } }} Added ability to check results file checksum on tests fail and compare with the checksums of the known issues mentioned in the fragile list. Also added ability to set 'retries' option, which sets the number of accepted reruns of the tests failed from 'fragile' list that have checksums on its fails. Closes #5050
In test-run implemented the new format of the fragile lists based on JSON format set as fragile option in 'suite.ini' files per each suite: fragile = { "retries": 10, "tests": { "bitset.test.lua": { "issues": [ "gh-4095" ], "checksums": [ "050af3a99561a724013995668a4bc71c", "f34be60193cfe9221d3fe50df657e9d3" ] } }} Added ability to check results file checksum on tests fail and compare with the checksums of the known issues mentioned in the fragile list. Also added ability to set 'retries' option, which sets the number of accepted reruns of the tests failed from 'fragile' list that have checksums on its fails. Closes #5050
In test-run implemented the new format of the fragile lists based on JSON format set as fragile option in 'suite.ini' files per each suite: fragile = { "retries": 10, "tests": { "bitset.test.lua": { "issues": [ "gh-4095" ], "checksums": [ "050af3a99561a724013995668a4bc71c", "f34be60193cfe9221d3fe50df657e9d3" ] } }} Added ability to check results file checksum on tests fail and compare with the checksums of the known issues mentioned in the fragile list. Also added ability to set 'retries' option, which sets the number of accepted reruns of the tests failed from 'fragile' list that have checksums on its fails. Closes #5050
In test-run implemented the new format of the fragile lists based on JSON format set as fragile option in 'suite.ini' files per each suite: fragile = { "retries": 10, "tests": { "bitset.test.lua": { "issues": [ "gh-4095" ], "checksums": [ "050af3a99561a724013995668a4bc71c", "f34be60193cfe9221d3fe50df657e9d3" ] } }} Added ability to check results file checksum on tests fail and compare with the checksums of the known issues mentioned in the fragile list. Also added ability to set 'retries' option, which sets the number of accepted reruns of the tests failed from 'fragile' list that have checksums on its fails. Closes #5050 (cherry picked from commit 7432838)
In test-run implemented the new format of the fragile lists based on JSON format set as fragile option in 'suite.ini' files per each suite: fragile = { "retries": 10, "tests": { "bitset.test.lua": { "issues": [ "gh-4095" ], "checksums": [ "050af3a99561a724013995668a4bc71c", "f34be60193cfe9221d3fe50df657e9d3" ] } }} Added ability to check results file checksum on tests fail and compare with the checksums of the known issues mentioned in the fragile list. Also added ability to set 'retries' option, which sets the number of accepted reruns of the tests failed from 'fragile' list that have checksums on its fails. Closes #5050
(chekky picked from commit 6b08248) x64/LJ_GC64: Fix fallback case of asm_fuseloadk64(). Contributed by Peter Cawley. Code generation under LJ_GC64 missed an update to the mcode area boundaries after a 64-bit constant encoding. This lead to a corruption of the constant later on. The constant can be encoded in one of the following ways: a. If the address of the constant fits into 32-bit one, then encode it as a 32-bit displacement (the only option for non-GC64 mode). b. If the offset of the constant slot from the dispatch table (pinned to r14 that is not changed while trace execution) fits into 32-bit, then encode this as a 32-bit displacement relative to r14. c. If the offset of the constant slot from the mcode (i.e. rip) fits into 32-bit, then encode this as a 32-bit displacement relative to rip (considering long mode specifics and RID_RIP hack). d. If none of the conditions above are valid, compiler materializes this 64-bit constant right at the trace bottom and encodes this the same way it does for the previous case. As a result the problem appears with 2Gb distance from the currently allocated mcode to the dispatch pointer, which may happen in real life in case of long running instance. Sergey Ostanevich: * added the description and the test for the problem Fixes tarantool/tarantool#4095 Fixes tarantool/tarantool#4199 Fixes tarantool/tarantool#4614 --- Branch: https://github.com/tarantool/luajit/tree/sergos/gh-4095-gc64-const-fusion Tarantool branch: https://github.com/tarantool/luajit/tree/tarantool/gh-4095-gc64-const-fusion
(chekky picked from commit 6b08248) x64/LJ_GC64: Fix fallback case of asm_fuseloadk64(). Contributed by Peter Cawley. Code generation under LJ_GC64 missed an update to the mcode area boundaries after a 64-bit constant encoding. It can lead to a corruption of the constant value after next trace code generation. The constant can be encoded in one of the following ways: a. If the address of the constant fits into 32-bit one, then encode it as a 32-bit displacement (the only option for non-GC64 mode). b. If the offset of the constant slot from the dispatch table (pinned to r14 that is not changed while trace execution) fits into 32-bit, then encode this as a 32-bit displacement relative to r14. c. If the offset of the constant slot from the mcode (i.e. rip) fits into 32-bit, then encode this as a 32-bit displacement relative to rip (considering long mode specifics and RID_RIP hack). d. If none of the conditions above are valid, compiler materializes this 64-bit constant right at the trace bottom and encodes this the same way it does for the previous case. The mentioned problem appears only with 2Gb distance from the currently allocated mcode to the dispatch pointer, which may happen in real life in case of long running instance. Sergey Ostanevich: * added the description and the test for the problem Fixes tarantool/tarantool#4095 Fixes tarantool/tarantool#4199 Fixes tarantool/tarantool#4614 --- Branch: https://github.com/tarantool/luajit/tree/sergos/gh-4095-gc64-const-fusion Tarantool branch: https://github.com/tarantool/luajit/tree/tarantool/gh-4095-gc64-const-fusion
(chekky picked from commit 6b08248) x64/LJ_GC64: Fix fallback case of asm_fuseloadk64(). Contributed by Peter Cawley. Code generation under LJ_GC64 missed an update to the mcode area boundaries after a 64-bit constant encoding. It can lead to a corruption of the constant value after next trace code generation. The constant can be encoded in one of the following ways: a. If the address of the constant fits into 32-bit one, then encode it as a 32-bit displacement (the only option for non-GC64 mode). b. If the offset of the constant slot from the dispatch table (pinned to r14 that is not changed while trace execution) fits into 32-bit, then encode this as a 32-bit displacement relative to r14. c. If the offset of the constant slot from the mcode (i.e. rip) fits into 32-bit, then encode this as a 32-bit displacement relative to rip (considering long mode specifics and RID_RIP hack). d. If none of the conditions above are valid, compiler materializes this 64-bit constant right at the trace bottom and encodes this the same way it does for the previous case. The mentioned problem appears only with 2Gb distance from the currently allocated mcode to the dispatch pointer, which may happen in real life in case of long running instance. Sergey Ostanevich: * added the description and the test for the problem Fixes tarantool/tarantool#4095 Fixes tarantool/tarantool#4199 Fixes tarantool/tarantool#4614 --- Branch: https://github.com/tarantool/luajit/tree/sergos/gh-4095-gc64-const-fusion Tarantool branch: https://github.com/tarantool/luajit/tree/tarantool/gh-4095-gc64-const-fusion
(chekky picked from commit 6b08248) x64/LJ_GC64: Fix fallback case of asm_fuseloadk64(). Contributed by Peter Cawley. Code generation under LJ_GC64 missed an update to the mcode area boundaries after a 64-bit constant encoding. It can lead to a corruption of the constant value after next trace code generation. The constant can be encoded in one of the following ways: a. If the address of the constant fits into 32-bit one, then encode it as a 32-bit displacement (the only option for non-GC64 mode). b. If the offset of the constant slot from the dispatch table (pinned to r14 that is not changed while trace execution) fits into 32-bit, then encode this as a 32-bit displacement relative to r14. c. If the offset of the constant slot from the mcode (i.e. rip) fits into 32-bit, then encode this as a 32-bit displacement relative to rip (considering long mode specifics and RID_RIP hack). d. If none of the conditions above are valid, compiler materializes this 64-bit constant right at the trace bottom and encodes this the same way it does for the previous case. The mentioned problem appears only with 2Gb distance from the currently allocated mcode to the dispatch pointer, which may happen in real life in case of long running instance. Sergey Ostanevich: * added the description and the test for the problem Fixes tarantool/tarantool#4095 Fixes tarantool/tarantool#4199 Fixes tarantool/tarantool#4614 --- Branch: https://github.com/tarantool/luajit/tree/sergos/gh-4095-gc64-const-fusion Tarantool branch: https://github.com/tarantool/luajit/tree/tarantool/gh-4095-gc64-const-fusion
(chekky picked from commit 6b08248) x64/LJ_GC64: Fix fallback case of asm_fuseloadk64(). Contributed by Peter Cawley. Code generation under LJ_GC64 missed an update to the mcode area boundaries after a 64-bit constant encoding. It can lead to a corruption of the constant value after next trace code generation. The constant can be encoded in one of the following ways: a. If the address of the constant fits into 32-bit one, then encode it as a 32-bit displacement (the only option for non-GC64 mode). b. If the offset of the constant slot from the dispatch table (pinned to r14 that is not changed while trace execution) fits into 32-bit, then encode this as a 32-bit displacement relative to r14. c. If the offset of the constant slot from the mcode (i.e. rip) fits into 32-bit, then encode this as a 32-bit displacement relative to rip (considering long mode specifics and RID_RIP hack). d. If none of the conditions above are valid, compiler materializes this 64-bit constant right at the trace bottom and encodes this the same way it does for the previous case. The mentioned problem appears only with 2Gb distance from the currently allocated mcode to the dispatch pointer, which may happen in real life in case of long running instance. Sergey Ostanevich: * added the description and the test for the problem Fixes tarantool/tarantool#4095 Fixes tarantool/tarantool#4199 Fixes tarantool/tarantool#4614
* Avoid conflict between 64 bit lightuserdata and ITERN key. * Reorganize lightuserdata interning code. * test: fix path storage for non-concatable objects * ARM64: Fix assembly of HREFK. * FFI/ARM64: Fix pass-by-value struct calling conventions. * test: set DYLD_LIBRARY_PATH environment variable * x64/LJ_GC64: Fix fallback case of asm_fuseloadk64(). * FFI: Handle zero-fill of struct-of-NYI. * Fix interaction between profiler hooks and finalizers. * Flush and close output file after profiling run. * Fix debug.debug() for non-string errors. * Fix write barrier for lua_setupvalue() and debug.setupvalue(). * Fix FOLD rule for strength reduction of widening. * Fix bytecode dump unpatching. * Fix tonumber("-0") in dual-number mode. * Fix tonumber("-0"). * Give expected results for negative non-base-10 numbers in tonumber(). * Add missing LJ_MAX_JSLOTS check. * Add stricter check for print() vs. tostring() shortcut. Closes tarantool#6548 Fixes tarantool#4614 Fixes tarantool#4630 Fixes tarantool#5885 Fixes tarantool/tarantool-qa#234 Fixes tarantool/tarantool-qa#235 Follows up tarantool#2712 NO_DOC=LuaJIT submodule bump NO_TEST=LuaJIT submodule bump
* test: fix path storage for non-concatable objects * test: set DYLD_LIBRARY_PATH environment variable * x64/LJ_GC64: Fix fallback case of asm_fuseloadk64(). * FFI: Handle zero-fill of struct-of-NYI. * Fix interaction between profiler hooks and finalizers. * Flush and close output file after profiling run. * Fix debug.debug() for non-string errors. * Fix write barrier for lua_setupvalue() and debug.setupvalue(). * Fix FOLD rule for strength reduction of widening. * Fix bytecode dump unpatching. * Fix tonumber("-0") in dual-number mode. * Fix tonumber("-0"). * Give expected results for negative non-base-10 numbers in tonumber(). * Add missing LJ_MAX_JSLOTS check. * Add stricter check for print() vs. tostring() shortcut. Closes tarantool#6548 Fixes tarantool#4614 Fixes tarantool#4630 Fixes tarantool#5885 Fixes tarantool/tarantool-qa#234 Fixes tarantool/tarantool-qa#235 NO_DOC=LuaJIT submodule bump NO_TEST=LuaJIT submodule bump
* test: fix path storage for non-concatable objects * test: set DYLD_LIBRARY_PATH environment variable * x64/LJ_GC64: Fix fallback case of asm_fuseloadk64(). * FFI: Handle zero-fill of struct-of-NYI. * Fix interaction between profiler hooks and finalizers. * Flush and close output file after profiling run. * Fix debug.debug() for non-string errors. * Fix write barrier for lua_setupvalue() and debug.setupvalue(). * Fix FOLD rule for strength reduction of widening. * Fix bytecode dump unpatching. * Fix tonumber("-0") in dual-number mode. * Fix tonumber("-0"). * Give expected results for negative non-base-10 numbers in tonumber(). * Add missing LJ_MAX_JSLOTS check. * Add stricter check for print() vs. tostring() shortcut. Closes tarantool#6548 Fixes tarantool#4614 Fixes tarantool#4630 Fixes tarantool#5885 Fixes tarantool/tarantool-qa#234 Fixes tarantool/tarantool-qa#235 NO_DOC=LuaJIT submodule bump NO_TEST=LuaJIT submodule bump
* Avoid conflict between 64 bit lightuserdata and ITERN key. * Reorganize lightuserdata interning code. * test: fix path storage for non-concatable objects * ARM64: Fix assembly of HREFK. * FFI/ARM64: Fix pass-by-value struct calling conventions. * test: set DYLD_LIBRARY_PATH environment variable * x64/LJ_GC64: Fix fallback case of asm_fuseloadk64(). * FFI: Handle zero-fill of struct-of-NYI. * Fix interaction between profiler hooks and finalizers. * Flush and close output file after profiling run. * Fix debug.debug() for non-string errors. * Fix write barrier for lua_setupvalue() and debug.setupvalue(). * Fix FOLD rule for strength reduction of widening. * Fix bytecode dump unpatching. * Fix tonumber("-0") in dual-number mode. * Fix tonumber("-0"). * Give expected results for negative non-base-10 numbers in tonumber(). * Add missing LJ_MAX_JSLOTS check. * Add stricter check for print() vs. tostring() shortcut. Closes tarantool#6548 Fixes tarantool#4614 Fixes tarantool#4630 Fixes tarantool#5885 Fixes tarantool/tarantool-qa#234 Fixes tarantool/tarantool-qa#235 Follows up tarantool#2712 NO_DOC=LuaJIT submodule bump NO_TEST=LuaJIT submodule bump
* Avoid conflict between 64 bit lightuserdata and ITERN key. * Reorganize lightuserdata interning code. * test: fix path storage for non-concatable objects * ARM64: Fix assembly of HREFK. * FFI/ARM64: Fix pass-by-value struct calling conventions. * test: set DYLD_LIBRARY_PATH environment variable * x64/LJ_GC64: Fix fallback case of asm_fuseloadk64(). * FFI: Handle zero-fill of struct-of-NYI. * Fix interaction between profiler hooks and finalizers. * Flush and close output file after profiling run. * Fix debug.debug() for non-string errors. * Fix write barrier for lua_setupvalue() and debug.setupvalue(). * Fix FOLD rule for strength reduction of widening. * Fix bytecode dump unpatching. * Fix tonumber("-0") in dual-number mode. * Fix tonumber("-0"). * Give expected results for negative non-base-10 numbers in tonumber(). * Add missing LJ_MAX_JSLOTS check. * Add stricter check for print() vs. tostring() shortcut. Closes tarantool#6548 Fixes tarantool#4614 Fixes tarantool#4630 Fixes tarantool#5885 Fixes tarantool/tarantool-qa#234 Fixes tarantool/tarantool-qa#235 Follows up tarantool#2712 NO_DOC=LuaJIT submodule bump NO_TEST=LuaJIT submodule bump
The issue is misclosed by pushing the resolving commit to the fork. Reopening. |
* Avoid conflict between 64 bit lightuserdata and ITERN key. * Reorganize lightuserdata interning code. * test: fix path storage for non-concatable objects * ARM64: Fix assembly of HREFK. * FFI/ARM64: Fix pass-by-value struct calling conventions. * test: set DYLD_LIBRARY_PATH environment variable * x64/LJ_GC64: Fix fallback case of asm_fuseloadk64(). * FFI: Handle zero-fill of struct-of-NYI. * Fix interaction between profiler hooks and finalizers. * Flush and close output file after profiling run. * Fix debug.debug() for non-string errors. * Fix write barrier for lua_setupvalue() and debug.setupvalue(). * Fix FOLD rule for strength reduction of widening. * Fix bytecode dump unpatching. * Fix tonumber("-0") in dual-number mode. * Fix tonumber("-0"). * Give expected results for negative non-base-10 numbers in tonumber(). * Add missing LJ_MAX_JSLOTS check. * Add stricter check for print() vs. tostring() shortcut. Closes #6548 Fixes #4614 Fixes #4630 Fixes #5885 Fixes tarantool/tarantool-qa#234 Fixes tarantool/tarantool-qa#235 Follows up #2712 NO_DOC=LuaJIT submodule bump NO_TEST=LuaJIT submodule bump
* Avoid conflict between 64 bit lightuserdata and ITERN key. * Reorganize lightuserdata interning code. * test: fix path storage for non-concatable objects * ARM64: Fix assembly of HREFK. * FFI/ARM64: Fix pass-by-value struct calling conventions. * test: set DYLD_LIBRARY_PATH environment variable * x64/LJ_GC64: Fix fallback case of asm_fuseloadk64(). * FFI: Handle zero-fill of struct-of-NYI. * Fix interaction between profiler hooks and finalizers. * Flush and close output file after profiling run. * Fix debug.debug() for non-string errors. * Fix write barrier for lua_setupvalue() and debug.setupvalue(). * Fix FOLD rule for strength reduction of widening. * Fix bytecode dump unpatching. * Fix tonumber("-0") in dual-number mode. * Fix tonumber("-0"). * Give expected results for negative non-base-10 numbers in tonumber(). * Add missing LJ_MAX_JSLOTS check. * Add stricter check for print() vs. tostring() shortcut. Closes #6548 Fixes #4614 Fixes #4630 Fixes #5885 Fixes tarantool/tarantool-qa#234 Fixes tarantool/tarantool-qa#235 Follows up #2712 NO_DOC=LuaJIT submodule bump NO_TEST=LuaJIT submodule bump
* test: fix path storage for non-concatable objects * test: set DYLD_LIBRARY_PATH environment variable * x64/LJ_GC64: Fix fallback case of asm_fuseloadk64(). * FFI: Handle zero-fill of struct-of-NYI. * Fix interaction between profiler hooks and finalizers. * Flush and close output file after profiling run. * Fix debug.debug() for non-string errors. * Fix write barrier for lua_setupvalue() and debug.setupvalue(). * Fix FOLD rule for strength reduction of widening. * Fix bytecode dump unpatching. * Fix tonumber("-0") in dual-number mode. * Fix tonumber("-0"). * Give expected results for negative non-base-10 numbers in tonumber(). * Add missing LJ_MAX_JSLOTS check. * Add stricter check for print() vs. tostring() shortcut. Closes #6548 Fixes #4614 Fixes #4630 Fixes #5885 Fixes tarantool/tarantool-qa#234 Fixes tarantool/tarantool-qa#235 NO_DOC=LuaJIT submodule bump NO_TEST=LuaJIT submodule bump
Since "x64/LJ_GC64: Fix fallback case of asm_fuseloadk64()." (42853793ec3e6e36bc0f7dff9d483d64ba0d8d28) is backported into tarantool/luajit trunk, box/bitset.test.lua and box/function1.test.lua tests are no more fragile. Follows up tarantool/tarantool-qa#234 Follows up tarantool/tarantool-qa#235 NO_DOC=test changes NO_CHANGELOG=test changes NO_TEST=test changes
Since "x64/LJ_GC64: Fix fallback case of asm_fuseloadk64()." (42853793ec3e6e36bc0f7dff9d483d64ba0d8d28) is backported into tarantool/luajit trunk, box/bitset.test.lua and box/function1.test.lua tests are no more fragile. Follows up tarantool/tarantool-qa#234 Follows up tarantool/tarantool-qa#235 NO_DOC=test changes NO_CHANGELOG=test changes NO_TEST=test changes
Since "x64/LJ_GC64: Fix fallback case of asm_fuseloadk64()." (42853793ec3e6e36bc0f7dff9d483d64ba0d8d28) is backported into tarantool/luajit trunk, box/bitset.test.lua and box/function1.test.lua tests are no more fragile. Follows up tarantool/tarantool-qa#234 Follows up tarantool/tarantool-qa#235 NO_DOC=test changes NO_CHANGELOG=test changes NO_TEST=test changes (cherry picked from commit c245e20)
Since "x64/LJ_GC64: Fix fallback case of asm_fuseloadk64()." (42853793ec3e6e36bc0f7dff9d483d64ba0d8d28) is backported into tarantool/luajit trunk, box/bitset.test.lua and box/function1.test.lua tests are no more fragile. Follows up tarantool/tarantool-qa#234 Follows up tarantool/tarantool-qa#235 NO_DOC=test changes NO_CHANGELOG=test changes NO_TEST=test changes (cherry picked from commit c245e20)
* Avoid conflict between 64 bit lightuserdata and ITERN key. * Reorganize lightuserdata interning code. * test: fix path storage for non-concatable objects * ARM64: Fix assembly of HREFK. * FFI/ARM64: Fix pass-by-value struct calling conventions. * test: set DYLD_LIBRARY_PATH environment variable * x64/LJ_GC64: Fix fallback case of asm_fuseloadk64(). * FFI: Handle zero-fill of struct-of-NYI. * Fix interaction between profiler hooks and finalizers. * Flush and close output file after profiling run. * Fix debug.debug() for non-string errors. * Fix write barrier for lua_setupvalue() and debug.setupvalue(). * Fix FOLD rule for strength reduction of widening. * Fix bytecode dump unpatching. * Fix tonumber("-0") in dual-number mode. * Fix tonumber("-0"). * Give expected results for negative non-base-10 numbers in tonumber(). * Add missing LJ_MAX_JSLOTS check. * Add stricter check for print() vs. tostring() shortcut. Closes tarantool#6548 Fixes tarantool#4614 Fixes tarantool#4630 Fixes tarantool#5885 Fixes tarantool/tarantool-qa#234 Fixes tarantool/tarantool-qa#235 Follows up tarantool#2712 NO_DOC=LuaJIT submodule bump NO_TEST=LuaJIT submodule bump
Since "x64/LJ_GC64: Fix fallback case of asm_fuseloadk64()." (42853793ec3e6e36bc0f7dff9d483d64ba0d8d28) is backported into tarantool/luajit trunk, box/bitset.test.lua and box/function1.test.lua tests are no more fragile. Follows up tarantool/tarantool-qa#234 Follows up tarantool/tarantool-qa#235 NO_DOC=test changes NO_CHANGELOG=test changes NO_TEST=test changes
Tarantool version: 2.2.0-97-g96cdc5ba8.
OS version: Mac OS 10.12.6 (16G29).
How to reproduce:
Sometimes bitset.test.lua hits by an assertion fail:
But sometimes it is on the line 794.
The function is so:
Backtrace and more info:
It seems the key that is passed from Lua via ffi is broken. After adding
require('jit'').off()
at the start of the bitset.test.lua it works stably! (It also works stably on Linux even with JIT enabled.) So the root of the problem seems to be found. Anyway, I'll dump other related info that I gathered on Mac OS with JIT enabled.Backtrace and more info (another run):
Sometimes bitset.test.lua fails with a result miscompare:
Or like so:
Or like so:
Or like so:
Or like so:
Or like so:
At least some of miscompares appear even after
pretest_clean = True
in suite.ini.Don't sure whether the assertion fail and the miscompares are caused by one problem.
The text was updated successfully, but these errors were encountered: