From ce6a7cd8b8da0100db347d6e1c507dc4cd3f8383 Mon Sep 17 00:00:00 2001 From: Seth Howell Date: Wed, 4 Apr 2018 09:23:34 -0700 Subject: [PATCH] test/bdev/mt free unregistered bdevs after polling. This unit test operated under the assumption that one could immediately free a bdev after calling spdk_bdev_unregister. This assumption is broken when we moved the actual destroy call to an asynchronous callback to spdk_io_device_unregister. Change-Id: I92d34f7e2e2993bfe9391f9bb72e08128dec74f4 Signed-off-by: Seth Howell Reviewed-on: https://review.gerrithub.io/406429 Tested-by: SPDK Automated Test System Reviewed-by: Daniel Verkamp Reviewed-by: Ben Walker Reviewed-by: Jim Harris --- test/unit/lib/bdev/mt/bdev.c/bdev_ut.c | 4 ++-- 1 file changed, 2 insertions(+), 2 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 ff07d2f3e..f98e5b3a3 100644 --- a/test/unit/lib/bdev/mt/bdev.c/bdev_ut.c +++ b/test/unit/lib/bdev/mt/bdev.c/bdev_ut.c @@ -221,7 +221,6 @@ unregister_bdev(struct ut_bdev *ut_bdev) /* Handle any deferred messages. */ poll_threads(); spdk_bdev_unregister(&ut_bdev->bdev, NULL, NULL); - memset(ut_bdev, 0, sizeof(*ut_bdev)); } static void @@ -260,6 +259,7 @@ teardown_test(void) spdk_io_device_unregister(&g_io_device, NULL); spdk_bdev_finish(finish_cb, NULL); poll_threads(); + memset(&g_bdev, 0, sizeof(g_bdev)); CU_ASSERT(g_teardown_done == true); g_teardown_done = false; free_threads(); @@ -1218,8 +1218,8 @@ enomem_multi_bdev(void) spdk_put_io_channel(second_ch); spdk_bdev_close(second_desc); unregister_bdev(second_bdev); - free(second_bdev); poll_threads(); + free(second_bdev); teardown_test(); }