From bb64a7e5118f36b264b0de2a9ef77f22f8d0dbd7 Mon Sep 17 00:00:00 2001 From: Darek Stojaczyk Date: Thu, 4 Apr 2019 02:11:24 +0200 Subject: [PATCH] ut/bdev_mt: fix io_channel leak in "unregister_and_close" We didn't call teardown_test() in "unregister_and_close" test case, causing the subsequent test case to fail to register the same io_channel. This didn't cause any issues, as spdk_io_device_register() silently returned if the same io_device was already registered. However, there was an extra error message printed and this patch gets rid of it. ``` Test: unregister_and_close ...passed Test: basic_qos ...thread.c: 850:spdk_io_device_register: *ERROR*: io_device 0x55555576e4e0 already registered (old:0x555555770ab0 new:0x55555d7a14d0) passed ``` Change-Id: Ib554612df8985c9d99b46b71bb76020f52565362 Signed-off-by: Darek Stojaczyk Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/450111 Tested-by: SPDK CI Jenkins Reviewed-by: Jim Harris Reviewed-by: Shuhei Matsumoto --- test/unit/lib/bdev/mt/bdev.c/bdev_ut.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/test/unit/lib/bdev/mt/bdev.c/bdev_ut.c b/test/unit/lib/bdev/mt/bdev.c/bdev_ut.c index 348154047..2760a0643 100644 --- a/test/unit/lib/bdev/mt/bdev.c/bdev_ut.c +++ b/test/unit/lib/bdev/mt/bdev.c/bdev_ut.c @@ -384,9 +384,10 @@ unregister_and_close(void) /* The unregister should have completed */ CU_ASSERT(done == true); - spdk_bdev_finish(finish_cb, NULL); - poll_threads(); - free_threads(); + /* Restore the original g_bdev so that we can use teardown_test(). */ + register_bdev(&g_bdev, "ut_bdev", &g_io_device); + spdk_bdev_open(&g_bdev.bdev, true, NULL, NULL, &g_desc); + teardown_test(); } static void