From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp46.i.mail.ru (smtp46.i.mail.ru [94.100.177.106]) (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 223DD469719 for ; Fri, 11 Sep 2020 13:38:01 +0300 (MSK) Date: Fri, 11 Sep 2020 13:38:00 +0300 From: Kirill Yukhin Message-ID: <20200911103800.eaegiorlztj256qd@tarantool.org> References: <75cc0d4428b08ee24ffeab4acd718ee5709fc2f4.1599674855.git.avtikhon@tarantool.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <75cc0d4428b08ee24ffeab4acd718ee5709fc2f4.1599674855.git.avtikhon@tarantool.org> Subject: Re: [Tarantool-patches] [PATCH v1] asan: leak unit/swim.test:swim_test_encryption List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Alexander V. Tikhonov" Cc: tarantool-patches@dev.tarantool.org, Vladislav Shpilevoy Hello, On 09 сен 21:08, Alexander V. Tikhonov wrote: > 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 allocated for codec creation at crypto_codec_new() > using swim_cluster_set_codec(). But there was no any memory free for > it. Decided to integrate at test utilities swim_cluster_delete_codec() > function for it available for tests. > > After this fix removed susspencion on memory leak for unit/swin.test. > > Closes #5283 > --- > > Github: https://github.com/tarantool/tarantool/tree/avtikhon/gh-5283-asan-swim > Issue: https://github.com/tarantool/tarantool/issues/5283 I've checked your patch into 2.4, 2.5 and master. -- Regards, Kirill Yukhin