+9
−1
Loading
Handling of lingering qpair destruction is different from regular destroy/disconnect path, controller's mutex is not locked in that case. That can lead to a race condition when nvme_rdma_qpair_destroy iterates controller's outstanding rdma_cm events and acks ones belonging to the qpair while another thread might be polling rdma cm events and reap an events for the qpair being destroyed. In that case we attempt to destroy rdma_cm id which has unprocessed events and rdma_destroy_id stucks. Fixes issue #3347 Signed-off-by:Alexey Marchuk <alexeymar@nvidia.com> Change-Id: I3470c6080e2c19a63eb65eecc398dccd92327eb9 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/23324 Reviewed-by:
Shuhei Matsumoto <smatsumoto@nvidia.com> Reviewed-by:
Ben Walker <ben@nvidia.com> Tested-by:
SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot