From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp38.i.mail.ru (smtp38.i.mail.ru [94.100.177.98]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 48293469710 for ; Wed, 27 May 2020 18:20:07 +0300 (MSK) From: "Alexander V. Tikhonov" Date: Wed, 27 May 2020 18:20:05 +0300 Message-Id: <30d78005ea9ea576b7ba4c3065c2c60ab91a9408.1590592525.git.avtikhon@tarantool.org> Subject: [Tarantool-patches] [PATCH v1] test: fix box/push.test.lua for ASAN List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Oleg Piskunov , Sergey Bronnikov , Vladislav Shpilevoy Cc: tarantool-patches@dev.tarantool.org After commit: 03790ac5510648d1d9648bb2281857a7992d0593 ("cmake: remove dynamic-list linker option") the issue with test initialy appeared: [001] box/push.test.lua [001] [001] [Instance "box" returns with non-zero exit code: 1] [001] [001] Last 15 lines of Tarantool Log file [Instance "box"][test/var/001_box/box.log]: [001] ==25624==ERROR: AddressSanitizer: odr-violation (0x000001123b60): [001] [1] size=1024 'mp_type_hint' src/lib/msgpuck/hints.c:39:20 [001] [2] size=1024 'mp_type_hint' src/lib/msgpuck/hints.c:39:20 [001] These globals were registered at these points: [001] [1]: [001] #0 0x478b8e in __asan_register_globals (src/tarantool+0x478b8e) [001] #1 0x7ff7a9bc9d0b in asan.module_ctor (function1.so+0x6d0b) [001] [001] [2]: [001] #0 0x478b8e in __asan_register_globals (src/tarantool+0x478b8e) [001] #1 0xab990b in asan.module_ctor (src/tarantool+0xab990b) [001] [001] ==25624==HINT: if you don't care about these errors you may set ASAN_OPTIONS=detect_odr_violation=0 [001] SUMMARY: AddressSanitizer: odr-violation: global 'mp_type_hint' at src/lib/msgpuck/hints.c:39:20 [001] ==25624==ABORTING [001] [ fail ] the following issue was created: https://github.com/tarantool/tarantool/issues/5001 The fail was described there by Vladislav Shpilevoy: """ I see why ASAN complains about mp_type_hint. This is because the symbol is defined both in Tarantool executable, and in the shared library function1.so. I think this is fine, and should be ignored. But it definitely has nothing to do with the current ticket. The problem existed always, but asan noticed it only now somewhy. And it is not a problem actually. """ He added suggestion to try RTLD_DEEPBIND, but in real it is not supported on OSX and the same issue with discussion can be found here: https://github.com/root-project/root/pull/4668 The initial issue closed and the new one created especialy for the test. The fix was made in ASAN suppresion list to block the ASAN check for file: src/lib/msgpuck/hints.c Closes #5023 --- Github: https://github.com/tarantool/tarantool/tree/avtikhon/gh-5023_fix-box-push-test-for-asan-full-ci Issue: https://github.com/tarantool/tarantool/issues/5023 asan/asan.supp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/asan/asan.supp b/asan/asan.supp index 79c13ec7d..b806873a5 100644 --- a/asan/asan.supp +++ b/asan/asan.supp @@ -9,6 +9,10 @@ # source: third_party/lua-cjson/lua_cjson.c fun:json_decode +# test: box/push.test.lua +# source: src/lib/msgpuck/hints.c:39:20 +src:*src/lib/msgpuck/hints.c + # test: unit/base64.test.lua # source: third_party/base64.c fun:base64_decode_block -- 2.17.1