+2
−2
Loading
In the callback of disconnecting a rdma qpair(nvme_rdma_qpair_disconnected), the outstanding requests are all aborted. There is case that the rdma qpair enters NVME_RDMA_QPAIR_STATE_LINGERING state, thus this qpair is not destroyed until it exits NVME_RDMA_QPAIR_STATE_LINGERING. During this time, the completion queue is still polled and there may be a send completion whose wc->status is 0 but its corresponding request is already aborted. This causes the following error: " nvme_rdma.c:2623:nvme_rdma_process_send_completion: ERROR: Received malformed completion: request 0xfffb95006290 type 1 bdevperf: nvme_rdma.c:2626: nvme_rdma_process_send_completion: Assertion `0' failed. Aborted " This patch fixed this by aborting the outstanding requests when the rdma qpair is in NVME_RDMA_QPAIR_STATE_EXITED state. Change-Id: Ieb55ec47d4554d8e9a148166cd13f84807cec5a4 Signed-off-by:Richael Zhuang <richael.zhuang@arm.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/18471 Reviewed-by:
Aleksey Marchuk <alexeymar@nvidia.com> Reviewed-by:
Shuhei Matsumoto <smatsumoto@nvidia.com> Tested-by:
SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot