[Tarantool-patches] [PATCH v1] asan: leak unit/swim.test:swim_test_encryption
Alexander V. Tikhonov
avtikhon at tarantool.org
Thu Sep 10 08:27:45 MSK 2020
Hi Vlad, thanks for the review and suggested patch. It is the same as
I started from, but just was afraid to suggest it being too easy, so
sure I already checked it and again rechecked it and agree with it.
Your patch completely LGTM to me, thanks.
On Wed, Sep 09, 2020 at 11:06:43PM +0200, Vladislav Shpilevoy wrote:
> Hi! Thanks for the patch!
>
> I force pushed my review fixes on top of the branch and paste
> them below. If you agree, and if it works (I wasn't able to reproduce
> the fail locally), then squash, please.
>
> ====================
> diff --git a/src/lib/swim/swim.c b/src/lib/swim/swim.c
> index 53f118609..396bd7c45 100644
> --- a/src/lib/swim/swim.c
> +++ b/src/lib/swim/swim.c
> @@ -2114,12 +2114,6 @@ swim_set_codec(struct swim *swim, enum crypto_algo algo, enum crypto_mode mode,
> key, key_size);
> }
>
> -int
> -swim_delete_codec(struct swim *swim)
> -{
> - return swim_scheduler_delete_codec(&swim->scheduler);
> -}
> -
> bool
> swim_is_configured(const struct swim *swim)
> {
> diff --git a/src/lib/swim/swim.h b/src/lib/swim/swim.h
> index e684205c4..4565eb976 100644
> --- a/src/lib/swim/swim.h
> +++ b/src/lib/swim/swim.h
> @@ -124,15 +124,6 @@ int
> swim_set_codec(struct swim *swim, enum crypto_algo algo, enum crypto_mode mode,
> const char *key, int key_size);
>
> -
> -/**
> - * Delete SWIM codec used to encrypt/decrypt messages.
> - * @param swim SWIM instance to set codec for.
> - */
> -int
> -swim_delete_codec(struct swim *swim);
> -
> -
> /**
> * Stop listening and broadcasting messages, cleanup all internal
> * structures, free memory. The function yields. Actual deletion
> diff --git a/src/lib/swim/swim_io.c b/src/lib/swim/swim_io.c
> index f7107d39e..c8558c43e 100644
> --- a/src/lib/swim/swim_io.c
> +++ b/src/lib/swim/swim_io.c
> @@ -402,6 +402,8 @@ swim_scheduler_destroy(struct swim_scheduler *scheduler)
> swim_transport_destroy(&scheduler->transport);
> swim_ev_io_stop(swim_loop(), &scheduler->output);
> swim_scheduler_stop_input(scheduler);
> + if (scheduler->codec != NULL)
> + crypto_codec_delete(scheduler->codec);
> assert(scheduler_count > 0);
> if (--scheduler_count == 0)
> swim_task_pool_destroy();
> @@ -708,14 +710,6 @@ swim_scheduler_set_codec(struct swim_scheduler *scheduler,
> return 0;
> }
>
> -int
> -swim_scheduler_delete_codec(struct swim_scheduler *scheduler)
> -{
> - if (scheduler->codec != NULL)
> - crypto_codec_delete(scheduler->codec);
> - return 0;
> -}
> -
> const char *
> swim_inaddr_str(const struct sockaddr_in *addr)
> {
> diff --git a/src/lib/swim/swim_io.h b/src/lib/swim/swim_io.h
> index 72c6c030d..bf5a1389f 100644
> --- a/src/lib/swim/swim_io.h
> +++ b/src/lib/swim/swim_io.h
> @@ -204,10 +204,6 @@ swim_scheduler_set_codec(struct swim_scheduler *scheduler,
> enum crypto_algo algo, enum crypto_mode mode,
> const char *key, int key_size);
>
> -/** Delete the codec used to encrypt/decrypt messages. */
> -int
> -swim_scheduler_delete_codec(struct swim_scheduler *scheduler);
> -
> /** Stop accepting new packets from the network. */
> void
> swim_scheduler_stop_input(struct swim_scheduler *scheduler);
> diff --git a/test/unit/swim.c b/test/unit/swim.c
> index bc19f8a10..bb12baf8d 100644
> --- a/test/unit/swim.c
> +++ b/test/unit/swim.c
> @@ -770,7 +770,6 @@ swim_test_encryption(void)
>
> is(swim_cluster_wait_fullmesh(cluster, 2), 0,
> "cluster works with encryption");
> - swim_cluster_delete_codec(cluster);
> swim_cluster_delete(cluster);
> /*
> * Test that the instances can not interact with different
> @@ -1141,4 +1140,4 @@ main()
> {
> swim_run_test("swim.txt", main_f);
> return test_result;
> -}
> +}
> \ No newline at end of file
> diff --git a/test/unit/swim_test_utils.c b/test/unit/swim_test_utils.c
> index c527af55c..9dbd28a9f 100644
> --- a/test/unit/swim_test_utils.c
> +++ b/test/unit/swim_test_utils.c
> @@ -237,14 +237,6 @@ swim_cluster_new(int size)
> } \
> })
>
> -#define swim_cluster_set_cfg_noargs(cluster, func) ({ \
> - for (int i = 0; i < cluster->size; ++i) { \
> - int rc = func(cluster->node[i].swim); \
> - assert(rc == 0); \
> - (void) rc; \
> - } \
> -})
> -
> void
> swim_cluster_set_ack_timeout(struct swim_cluster *cluster, double ack_timeout)
> {
> @@ -260,12 +252,6 @@ swim_cluster_set_codec(struct swim_cluster *cluster, enum crypto_algo algo,
> key, key_size);
> }
>
> -void
> -swim_cluster_delete_codec(struct swim_cluster *cluster)
> -{
> - swim_cluster_set_cfg_noargs(cluster, swim_delete_codec);
> -}
> -
> void
> swim_cluster_set_gc(struct swim_cluster *cluster, enum swim_gc_mode gc_mode)
> {
> diff --git a/test/unit/swim_test_utils.h b/test/unit/swim_test_utils.h
> index b413bb8ce..ac86b6f72 100644
> --- a/test/unit/swim_test_utils.h
> +++ b/test/unit/swim_test_utils.h
> @@ -64,13 +64,6 @@ void
> swim_cluster_set_codec(struct swim_cluster *cluster, enum crypto_algo algo,
> enum crypto_mode mode, const char *key, int key_size);
>
> -/**
> - * Delete codec for each instance in
> - * @a cluster.
> - */
> -void
> -swim_cluster_delete_codec(struct swim_cluster *cluster);
> -
> /**
> * Change number of unacknowledged pings to delete a dead member
> * of all the instances in the cluster.
More information about the Tarantool-patches
mailing list