Skip to content

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

Closed
Totktonada opened this issue Apr 3, 2019 · 3 comments · Fixed by tarantool/tarantool#7328
Closed

luajit: box/bitset.test.lua flaky fails on Mac OS #235

Totktonada opened this issue Apr 3, 2019 · 3 comments · Fixed by tarantool/tarantool#7328

Comments

@Totktonada
Copy link
Member

Tarantool version: 2.2.0-97-g96cdc5ba8.
OS version: Mac OS 10.12.6 (16G29).

How to reproduce:

TEST_RUN_TESTS="$(yes "box/bitset box/net_msg_max" | head -n 100)" make test

Sometimes bitset.test.lua hits by an assertion fail:

[005] Assertion failed: (tuple == tuple_end), function mp_tuple_assert, file /Users/a.turenko/tarantool/src/box/tuple.h, line 798.

But sometimes it is on the line 794.

The function is so:

 786 /**
 787  * Assert that buffer is valid MessagePack array
 788  * @param tuple buffer
 789  * @param the end of the buffer
 790  */
 791 static inline void
 792 mp_tuple_assert(const char *tuple, const char *tuple_end)
 793 {
 794     assert(mp_typeof(*tuple) == MP_ARRAY);
 795 #ifndef NDEBUG
 796     mp_next(&tuple);
 797 #endif
 798     assert(tuple == tuple_end);
 799     (void) tuple;
 800     (void) tuple_end;
 801 }

Backtrace and more info:

(lldb) bt
* thread tarantool/tarantool#1, stop reason = signal SIGSTOP
  * frame #0: 0x00007fffc3e04d42 libsystem_kernel.dylib`__pthread_kill + 10
    frame tarantool/tarantool#1: 0x00007fffc3ef2457 libsystem_pthread.dylib`pthread_kill + 90
    frame tarantool/tarantool#2: 0x00007fffc3d6a420 libsystem_c.dylib`abort + 129
    frame tarantool/tarantool#3: 0x00007fffc3d31893 libsystem_c.dylib`__assert_rtn + 320
    frame tarantool/tarantool#4: 0x0000000104a1fa59 tarantool`mp_tuple_assert(tuple="", tuple_end="") at tuple.h:798
    frame tarantool/tarantool#5: 0x0000000104a203ce tarantool`::box_index_iterator(space_id=512, index_id=1, type=7, key="\x91", key_end="") at index.cc:358
    frame tarantool/tarantool#6: 0x0000000104b9cb3d tarantool`lj_vm_ffi_call + 132
    frame tarantool/tarantool#7: 0x0000000104c4fe80 tarantool`lj_ccall_func(L=0x00000001073262f0, cd=0x000000010e04c040) at lj_ccall.c:1150
    frame tarantool/tarantool#8: 0x0000000104c80e50 tarantool`lj_cf_ffi_meta___call(L=0x00000001073262f0) at lib_ffi.c:230
    frame tarantool/tarantool#9: 0x0000000104b9a70d tarantool`lj_BC_FUNCC + 68
    frame tarantool/tarantool#10: 0x0000000104bc8d00 tarantool`lua_pcall(L=0x00000001073262f0, nargs=3, nresults=-1, errfunc=0) at lj_api.c:1139
    frame tarantool/tarantool#11: 0x0000000104b52eb3 tarantool`luaT_call(L=0x00000001073262f0, nargs=3, nreturns=-1) at utils.c:975
    frame tarantool/tarantool#12: 0x0000000104b4bcbc tarantool`lua_fiber_run_f(ap=0x0000000107400378) at fiber.c:366
    frame tarantool/tarantool#13: 0x0000000104a111b1 tarantool`fiber_cxx_invoke(f=(tarantool`lua_fiber_run_f at fiber.c:360), ap=0x0000000107400378)(__va_list_tag*), __va_list_tag*) at fiber.h:666
    frame tarantool/tarantool#14: 0x0000000104b6b91b tarantool`fiber_loop(data=0x0000000000000000) at fiber.c:694
    frame tarantool/tarantool#15: 0x0000000104d98c77 tarantool`coro_init at coro.c:110
(lldb) f 5
frame tarantool/tarantool#5: 0x0000000104a203ce tarantool`::box_index_iterator(space_id=512, index_id=1, type=7, key="\x91", key_end="") at index.cc:358
   355 	                   const char *key, const char *key_end)
   356 	{
   357 		assert(key != NULL && key_end != NULL);
-> 358 		mp_tuple_assert(key, key_end);
   359 		if (type < 0 || type >= iterator_type_MAX) {
   360 			diag_set(ClientError, ER_ILLEGAL_PARAMS,
   361 				 "Invalid iterator type");
(lldb) p key
(const char *) $2 = 0x00000001be2a4530 "\xffffff91"
(lldb) p key_end
(const char *) $3 = 0x00000001be2a453c <no value available>
(lldb) p key
(const char *) $4 = 0x00000001be2a4530 "\xffffff91"
(lldb) x key
0x1be2a4530: 91 00 00 00 00 00 00 00 00 00 00 05 00 00 00 00  ................
0x1be2a4540: 23 00 00 00 00 00 00 00 f8 44 2a be 01 00 00 00  #........D*.....
(lldb) f 4
frame tarantool/tarantool#4: 0x0000000104a1fa59 tarantool`mp_tuple_assert(tuple="", tuple_end="") at tuple.h:798
   795 	#ifndef NDEBUG
   796 		mp_next(&tuple);
   797 	#endif
-> 798 		assert(tuple == tuple_end);
   799 		(void) tuple;
   800 		(void) tuple_end;
   801 	}
(lldb) p tuple
(const char *) $0 = 0x00000001be2a4532 <no value available>
(lldb) p tuple_end
(const char *) $1 = 0x00000001be2a453c <no value available>

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):

(lldb) bt
* thread tarantool/tarantool#1, stop reason = signal SIGSTOP
  * frame #0: 0x00007fffc3e04d42 libsystem_kernel.dylib`__pthread_kill + 10
    frame tarantool/tarantool#1: 0x00007fffc3ef2457 libsystem_pthread.dylib`pthread_kill + 90
    frame tarantool/tarantool#2: 0x00007fffc3d6a420 libsystem_c.dylib`abort + 129
    frame tarantool/tarantool#3: 0x00007fffc3d31893 libsystem_c.dylib`__assert_rtn + 320
    frame tarantool/tarantool#4: 0x000000010bfa5a12 tarantool`mp_tuple_assert(tuple="", tuple_end="\x80") at tuple.h:794
    frame tarantool/tarantool#5: 0x000000010bfa614e tarantool`::box_index_count(space_id=522, index_id=1, type=9, key="", key_end="\x80") at index.cc:322
    frame tarantool/tarantool#6: 0x000000010c122b3d tarantool`lj_vm_ffi_call + 132
    frame tarantool/tarantool#7: 0x000000010c1d5e80 tarantool`lj_ccall_func(L=0x000000010cf101e0, cd=0x000000010cfbf3b0) at lj_ccall.c:1150
    frame tarantool/tarantool#8: 0x000000010c206e50 tarantool`lj_cf_ffi_meta___call(L=0x000000010cf101e0) at lib_ffi.c:230
    frame tarantool/tarantool#9: 0x000000010c12070d tarantool`lj_BC_FUNCC + 68
    frame tarantool/tarantool#10: 0x000000010c14ed00 tarantool`lua_pcall(L=0x000000010cf101e0, nargs=3, nresults=-1, errfunc=0) at lj_api.c:1139
    frame tarantool/tarantool#11: 0x000000010c0d8eb3 tarantool`luaT_call(L=0x000000010cf101e0, nargs=3, nreturns=-1) at utils.c:975
    frame tarantool/tarantool#12: 0x000000010c0d1cbc tarantool`lua_fiber_run_f(ap=0x000000010f000378) at fiber.c:366
    frame tarantool/tarantool#13: 0x000000010bf971b1 tarantool`fiber_cxx_invoke(f=(tarantool`lua_fiber_run_f at fiber.c:360), ap=0x000000010f000378)(__va_list_tag*), __va_list_tag*) at fiber.h:666
    frame tarantool/tarantool#14: 0x000000010c0f191b tarantool`fiber_loop(data=0x0000000000000000) at fiber.c:694
    frame tarantool/tarantool#15: 0x000000010c31ec77 tarantool`coro_init at coro.c:110
frame tarantool/tarantool#5: 0x000000010bfa614e tarantool`::box_index_count(space_id=522, index_id=1, type=9, key="", key_end="\x80") at index.cc:322
   319 			const char *key, const char *key_end)
   320 	{
   321 		assert(key != NULL && key_end != NULL);
-> 322 		mp_tuple_assert(key, key_end);
   323 		if (type < 0 || type >= iterator_type_MAX) {
   324 			diag_set(ClientError, ER_ILLEGAL_PARAMS,
   325 				 "Invalid iterator type");
(lldb) f 4
frame tarantool/tarantool#4: 0x000000010bfa5a12 tarantool`mp_tuple_assert(tuple="", tuple_end="\x80") at tuple.h:794
   791 	static inline void
   792 	mp_tuple_assert(const char *tuple, const char *tuple_end)
   793 	{
-> 794 		assert(mp_typeof(*tuple) == MP_ARRAY);
   795 	#ifndef NDEBUG
   796 		mp_next(&tuple);
   797 	#endif

Sometimes bitset.test.lua fails with a result miscompare:

[012] --- box/bitset.result	Mon Jul 23 15:01:38 2018
[012] +++ box/bitset.reject	Wed Apr  3 11:26:16 2019
[012] @@ -1249,37 +1249,37 @@
[012]  ------------------------------------------------------------------------------
[012]  dump(box.index.BITS_ALL_NOT_SET, 3)
[012]  ---
[012] -- - $       4$
[012] -  - $       8$
[012] -  - $      12$
[012] -  - $      16$
<...>
[012] +- - $       4$       4$       4$
[012] +  - $       8$       8$       8$
[012] +  - $      12$      12$      12$
[012] +  - $      16$      16$      16$
<...>

Or like so:

[001] --- box/bitset.result	Mon Jul 23 15:01:38 2018
[001] +++ box/bitset.reject	Wed Apr  3 11:26:17 2019
[001] @@ -700,70 +700,7 @@
[001]  ...
[001]  dump(box.index.BITS_ALL_NOT_SET, 2)
[001]  ---
[001] -- - $       1$
[001] -  - $       4$
[001] -  - $       5$
[001] -  - $       8$
[001] -  - $       9$
[001] -  - $      12$
[001] -  - $      13$
[001] -  - $      16$
<...>
[001] +- error: './utils.lua:29: bad argument tarantool/tarantool#2 to ''get_field'' (number expected, got nil)'
[001]  ...
[001]  box.space.tweedledum.index.bitset:count(2, { iterator = box.index.BITS_ALL_NOT_SET})
[001]  ---
<...>

Or like so:

[015] --- box/bitset.result	Mon Jul 23 15:01:38 2018
[015] +++ box/bitset.reject	Wed Apr  3 11:35:34 2019
[015] @@ -9,7 +9,7 @@
[015]  ------------------------------------------------------------------------------
[015]  test_insert_delete(128)
[015]  ---
[015] -- - $       1$
[015] +- - $
[015]  ...
<...>

Or like so:

[001] --- box/bitset.result	Mon Jul 23 15:01:38 2018
[001] +++ box/bitset.reject	Wed Apr  3 11:40:31 2019
[001] @@ -1961,6 +1961,7 @@
[001]  ...
[001]  for j=1,100 do check(math.random(9) - 1) end
[001]  ---
[001] +- error: 'Supplied key type of part 0 does not match index part type: expected unsigned'
[001]  ...
[001]  for j=1,100 do check(math.random(9) - 1, {iterator = box.index.BITS_ANY_SET}) end
[001]  ---

Or like so:

[008] --- box/bitset.result	Mon Jul 23 15:01:38 2018
[008] +++ box/bitset.reject	Wed Apr  3 11:48:12 2019
[008] @@ -3,13 +3,14 @@
[008]  ...
[008]  create_space()
[008]  ---
[008] +- error: Duplicate key exists in unique index 'primary' in space '_index'

Or like so:

[016] --- box/bitset.result	Mon Jul 23 15:01:38 2018
[016] +++ box/bitset.reject	Wed Apr  3 12:14:25 2019
[016] @@ -1834,6 +1834,7 @@
[016]  ...
[016]  drop_space()
[016]  ---
[016] +- error: 'Can''t drop space ''tweedledum'': the space has indexes'

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.

@Totktonada
Copy link
Member Author

At least miscompares are reproduced with -DLUAJIT_ENABLE_GC64=ON on Linux. So the reason of the fails is somewhere in GC64.

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.

@Totktonada Totktonada added the OSX label Jul 2, 2020
avtikhon referenced this issue in tarantool/tarantool Aug 13, 2020
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
avtikhon referenced this issue in tarantool/tarantool Aug 13, 2020
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
avtikhon referenced this issue in tarantool/tarantool Aug 13, 2020
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
avtikhon referenced this issue in tarantool/tarantool Aug 13, 2020
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
avtikhon referenced this issue in tarantool/tarantool Sep 15, 2020
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
avtikhon referenced this issue in tarantool/tarantool Sep 22, 2020
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
avtikhon referenced this issue in tarantool/tarantool Sep 22, 2020
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
avtikhon referenced this issue in tarantool/tarantool Sep 24, 2020
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
avtikhon referenced this issue in tarantool/tarantool Sep 24, 2020
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
avtikhon referenced this issue in tarantool/tarantool Sep 25, 2020
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
avtikhon referenced this issue in tarantool/tarantool Sep 25, 2020
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
avtikhon referenced this issue in tarantool/tarantool Sep 25, 2020
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
avtikhon referenced this issue in tarantool/tarantool Sep 25, 2020
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
avtikhon referenced this issue in tarantool/tarantool Sep 25, 2020
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
avtikhon referenced this issue in tarantool/tarantool Sep 25, 2020
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
avtikhon referenced this issue in tarantool/tarantool Sep 25, 2020
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
avtikhon referenced this issue in tarantool/tarantool Sep 25, 2020
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
avtikhon referenced this issue in tarantool/tarantool Sep 25, 2020
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
avtikhon referenced this issue in tarantool/tarantool Sep 25, 2020
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
avtikhon referenced this issue in tarantool/tarantool Sep 25, 2020
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
kyukhin referenced this issue in tarantool/tarantool Sep 25, 2020
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)
kyukhin referenced this issue in tarantool/tarantool Sep 25, 2020
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
sergos referenced this issue in tarantool/luajit Jan 28, 2022
(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
sergos referenced this issue in tarantool/luajit Jan 31, 2022
(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
Buristan referenced this issue in tarantool/luajit Feb 16, 2022
(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
Buristan referenced this issue in tarantool/luajit Feb 16, 2022
(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
Buristan referenced this issue in tarantool/luajit Feb 16, 2022
(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
@ylobankov ylobankov transferred this issue from tarantool/tarantool Apr 15, 2022
igormunkin added a commit to igormunkin/tarantool that referenced this issue Jun 30, 2022
* 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
igormunkin added a commit to igormunkin/tarantool that referenced this issue Jun 30, 2022
* 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
igormunkin added a commit to igormunkin/tarantool that referenced this issue Jun 30, 2022
* 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
igormunkin added a commit to igormunkin/tarantool that referenced this issue Jun 30, 2022
* 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
igormunkin added a commit to igormunkin/tarantool that referenced this issue Jun 30, 2022
* 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
@igormunkin
Copy link

The issue is misclosed by pushing the resolving commit to the fork. Reopening.

@igormunkin igormunkin reopened this Jun 30, 2022
igormunkin added a commit to tarantool/tarantool that referenced this issue Jun 30, 2022
* 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
igormunkin added a commit to tarantool/tarantool that referenced this issue Jun 30, 2022
* 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
igormunkin added a commit to tarantool/tarantool that referenced this issue Jun 30, 2022
* 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
igormunkin added a commit to igormunkin/tarantool that referenced this issue Jul 6, 2022
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
igormunkin added a commit to tarantool/tarantool that referenced this issue Jul 7, 2022
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
igormunkin added a commit to igormunkin/tarantool that referenced this issue Jul 7, 2022
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)
igormunkin added a commit to igormunkin/tarantool that referenced this issue Jul 7, 2022
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)
mkokryashkin pushed a commit to mkokryashkin/tarantool that referenced this issue Sep 9, 2022
* 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
mkokryashkin pushed a commit to mkokryashkin/tarantool that referenced this issue Sep 9, 2022
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants