+2
−2
Loading
There is a data race condition, with spdk_thread, waiting on g_devlist_mutex inside put_io_channel() to close channel and exit on one side, and spdk_for_each_channel() holding this mutex while iterating channels. Because spdk_for_each_channel() releases mutex BEFORE calling spdk_thread_send_msg() to that thread, there is a possibility, that exiting spdk_thread will be executed prior to this message being received, resulting in spdk_for_each_channel_continue() never being called, which in turn means spdk_for_each_channel() completion callback won't be called. Change-Id: I6ab14b7959e73689534b7127b1a6a0c5420a7185 Signed-off-by:Vladislav Fedyaev <a37206@gmail.com> Reviewed-on: https://review.spdk.io/c/spdk/spdk/+/26175 Reviewed-by:
Jim Harris <jim.harris@nvidia.com> Tested-by:
SPDK Automated Test System <spdkbot@gmail.com> Reviewed-by:
Vasilii Ivanov <iwanovvvasilij@gmail.com> Community-CI: Mellanox Build Bot Reviewed-by:
Tomasz Zawadzki <tomasz@tzawadzki.com>