- Oct 26, 2023
-
-
Nikolay Shirokovskiy authored
With ASAN-friendly small allocators there are a lot test failures due to leak reports which are gone if JIT is off. Fortunately all the reports related to a few functions. Let's suppress temporarily such reports. Part of #7327 NO_TEST=internal NO_CHANGELOG=internal NO_DOC=internal (cherry picked from commit f0feb923)
-
- Oct 10, 2023
-
-
Nikolay Shirokovskiy authored
This blocks us from turning debug ASAN CI currently. The ticket for the leakage is #9213. Part of #7327 NO_TEST=internal NO_CHANGELOG=internal NO_DOC=internal (cherry picked from commit 37d0fdbf)
-
- Aug 04, 2023
-
-
Igor Munkin authored
All LuaJIT related LSan warnings were suppressed in the scope of the commit 985548e4 ("asan: suppress all LSAN warnings related to LuaJIT"), since all compiler flags tweaks were enclosed in LuaJIT CMake machinery. As a result of the commit in LuaJIT submodule tarantool/luajit@a86e376 ("build: introduce LUAJIT_USE_ASAN option") ASan and LSan support has been finally added to LuaJIT runtime, so it was decided to remove LSan suppressions for LuaJIT functions. Unfortunately, it was not so easy as it looked like. At first, Lua global state is not closed properly at Tarantool instance exit (see <tarantool_free> in src/main.cc and <tarantool_lua_free> in src/lua/init.c for more info), so LSan false-positive leaks are detected (for more info, see #3071). Hence, the original LSan suppression for lj_BC_FUNCC is returned back (temporarily) until the aforementioned issue is not resolved. Furthermore, the internal LuaJIT memory allocator is not instrumented yet, so to find any memory faults it's worth building LuaJIT with system provided memory allocator (i.e. enable LUAJIT_USE_SYSMALLOC option). However, again, since Tarantool doesn't finalize Lua universe the right way, so running Tarantool testing routine with LUAJIT_USE_SYSMALLOC enabled generates false-positive LSan leaks. Return back here to enable LUAJIT_USE_SYSMALLOC, when #3071 is resolved. Last but not least, the default value of fiber stack size is 512Kb, but several tests in test/PUC-Rio-Lua-5.1-test suite in LuaJIT submodule (e.g. some cases with deep recursion in errors.lua or pm.lua) have already been tweaked according to the limitations mentioned in #5782, but the crashes still occur while running LuaJIT tests with ASan support enabled. Experiments once again confirm the notorious quote that "640 Kb ought to be enough for anybody". Anyway, LuaJIT tests are added to <test-release-asan> target in .test.mk and LUAJIT_TEST_ENV is extended with required ASan and LSan options. Follows up #5878 NO_DOC=ci NO_TEST=ci NO_CHANGELOG=ci (cherry picked from commit bacf4e56)
-
- Apr 14, 2021
-
-
Alexander V. Tikhonov authored
Found that after patch set of 5 commits: aa97a185 ("feedback_daemon: count and report some events") e9c9832a ("feedback_daemon: generate report right before sending") bc15e0f0 ("feedback_daemon: send feedback on server start") 670acf0d ("feedback_daemon: rename `send_test` to `send`") c5d595bc ("feedback_daemon: include server uptime in the report") began to leak feedback demon on using cURL. To avoid of it decided to add LSAN suppresions: 1. for /lib/x86_64-linux-gnu/libcrypto.so leak:libcrypto.so* 2. for /lib/x86_64-linux-gnu/libssl.so leak:libssl.so* Needed for tarantool/tarantool-qa#116
-
- Mar 16, 2021
-
-
Igor Munkin authored
After porting LuaJIT build system to CMake in commit 07c83aab ('build: adjust LuaJIT build system'), its build options are not fully maintained in Tarantool. E.g. several compile flags, such as -fomit-frame-pointer, are set within LuaJIT CMake machinery and there is no way to tweak them outside. As a result ASAN + LSAN build in Tarantool CI[1] reports new leaks related to LuaJIT runtime, but there is none of them actually (no source code changes are made in scope of the applied patchset). Hence it was decided to consider all LuaJIT related warnings as false positives for now and suppress them until #5878 is resolved. [1]: https://github.com/tarantool/tarantool/runs/1999839396 Follows up #4862 Relates to #5878 Reviewed-by:
Alexander V. Tikhonov <avtikhon@tarantool.org> Reviewed-by:
Kirill Yukhin <kyukhin@tarantool.org> Signed-off-by:
Igor Munkin <imun@tarantool.org>
-
- Oct 13, 2020
-
-
Alexander V. Tikhonov authored
Met flaky issues on test: replication/gh-3637-misc-error-on-replica-auth-fail.test.lua Found memory leaks: [093] Last 15 lines of Tarantool Log file [Instance "replica_auth"][/builds/DtQXhC5e/0/tarantool/tarantool/test/var/093_replication/replica_auth.log]: [093] #3 0xa13df8 in coio_on_call /builds/DtQXhC5e/0/tarantool/tarantool/src/lib/core/coio_task.c:264:16 [093] #4 0xfcedbe in eio_execute /builds/DtQXhC5e/0/tarantool/tarantool/third_party/libeio/eio.c:2015:9 [093] #5 0xfcedbe in etp_proc /builds/DtQXhC5e/0/tarantool/tarantool/third_party/libeio/etp.c:373 [093] #6 0x7f8c8260ffa2 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x7fa2) [093] [093] Indirect leak of 4 byte(s) in 1 object(s) allocated from: [093] #0 0x525dfa in calloc (/builds/DtQXhC5e/0/tarantool/tarantool/src/tarantool+0x525dfa) [093] #1 0xa2eb4a in mh_i64ptr_new /builds/DtQXhC5e/0/tarantool/tarantool/src/lib/salad/mhash.h:408:22 [093] #2 0x8a516d in vy_recovery_new_f /builds/DtQXhC5e/0/tarantool/tarantool/src/box/vy_log.c:2321:23 [093] #3 0xa13df8 in coio_on_call /builds/DtQXhC5e/0/tarantool/tarantool/src/lib/core/coio_task.c:264:16 [093] #4 0xfcedbe in eio_execute /builds/DtQXhC5e/0/tarantool/tarantool/third_party/libeio/eio.c:2015:9 [093] #5 0xfcedbe in etp_proc /builds/DtQXhC5e/0/tarantool/tarantool/third_party/libeio/etp.c:373 [093] #6 0x7f8c8260ffa2 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x7fa2) To stabilize testing these leaks added as suppressions to asan list. Part of #5343
-
- Sep 23, 2020
-
-
Kirill Yukhin authored
cord_ptr variable is calloc()-ated in coio_on_start() and is not free()-ed, which triggers ASAN. free() it in coio_on_stop(). Closes #5308
-
- Sep 11, 2020
-
-
Alexander V. Tikhonov authored
Found leak issue: [001] +==41031==ERROR: LeakSanitizer: detected memory leaks [001] + [001] +Direct leak of 96 byte(s) in 2 object(s) allocated from: [001] + #0 0x4d8e53 in __interceptor_malloc (/tnt/test/unit/swim.test+0x4d8e53) [001] + #1 0x53560f in crypto_codec_new /source/src/lib/crypto/crypto.c:239:51 [001] + #2 0x5299c4 in swim_scheduler_set_codec /source/src/lib/swim/swim_io.c:700:30 [001] + #3 0x511fe6 in swim_cluster_set_codec /source/test/unit/swim_test_utils.c:251:2 [001] + #4 0x50b3ae in swim_test_encryption /source/test/unit/swim.c:767:2 [001] + #5 0x50b3ae in main_f /source/test/unit/swim.c:1123 [001] + #6 0x544a3b in fiber_loop /source/src/lib/core/fiber.c:869:18 [001] + #7 0x5a13d0 in coro_init /source/third_party/coro/coro.c:110:3 [001] + [001] +SUMMARY: AddressSanitizer: 96 byte(s) leaked in 2 allocation(s). Prepared minimal issue reproducer: static void swim_test_encryption(void) { swim_start_test(3); struct swim_cluster *cluster = swim_cluster_new(2); swim_cluster_set_codec(cluster, CRYPTO_ALGO_AES128, CRYPTO_MODE_CBC, "1234567812345678", CRYPTO_AES128_KEY_SIZE); swim_cluster_delete(cluster); swim_finish_test(); } Found that memory allocation for codec creation at crypto_codec_new() using swim_cluster_set_codec() was not any freed at the test. Added crypto_codec_delete() in swim_scheduler_destroy() function for it. After this fix removed susspencion on memory leak for unit/swim.test. Closes #5283 Reviewed-by:
Vladislav Shpilevoy <v.shpilevoy@tarantool.org> Co-authored-by:
Vladislav Shpilevoy <v.shpilevoy@tarantool.org>
-
- Sep 09, 2020
-
-
Alexander V. Tikhonov authored
ASAN should the issue in msgpuck repository in file test/msgpuck.c which was the cause of the fail in unit/msgpack test. The issue was fixed in msgpuck repository and ASAN suppression was removed for it. Also removed skip condition file, which blocked the test when it failed. Part of #4360
-
Alexander V. Tikhonov authored
Removed lsan suppresions that were not reproduced. Part of #4360
-
- Aug 20, 2020
-
-
Alexander V. Tikhonov authored
Removed asan/lsan suppresions for issues that were not reproduced. Removed skip condition files for tests that passed testing. Part of #4360
-
- Apr 02, 2020
-
-
Alexander V. Tikhonov authored
The change enables memory leaks detection to existing ASAN testing routine and introduces suppression files with the corresponding exception list: * address sanitizer for compile-time: asan/asan.supp * memory leak sanitizer for run-time: asan/lsan.supp Furthermore, added engine and replication suites for ASAN testing routine. Additionally to the tests blacklisted within #4359, 'box/on_shutdown.test.lua' is also disabled since it fails the introduced leak check. All blacklisted tests have to be enabled within #4360. Close #2058
-