Spdk/lib
Alexey Marchuk 92f62deefc nvmf: Fix race condition when adding IO qpair
Similar issue was fixed in
813869d823
nvmf: Fix possible race condition when adding IO qpair

This patch fixes the same issue which occurs a bit later,
when a  message is delivered to another thread. This issue
occurred on CI, callstack is the following:

00:11:46.296  #6  0x00007f2705199f05 in __ubsan_handle_type_mismatch_v1 () from /lib64/libubsan.so.1
00:11:46.296  No symbol table info available.
00:11:46.296  #7  0x00007f27067ace6f in ctrlr_add_qpair_and_update_rsp (qpair=0x221edc0, ctrlr=0x1dc4ea0, rsp=0x2242918) at ctrlr.c:230
00:11:46.296          __PRETTY_FUNCTION__ = "ctrlr_add_qpair_and_update_rsp"
00:11:46.296          __func__ = "ctrlr_add_qpair_and_update_rsp"
00:11:46.296  #8  0x00007f27067b1d0b in nvmf_ctrlr_add_io_qpair (ctx=0x2242540) at ctrlr.c:534
00:11:46.296          req = 0x2242540
00:11:46.296          rsp = 0x2242918
00:11:46.296          qpair = 0x221edc0
00:11:46.296          ctrlr = 0x1dc4ea0
00:11:46.296          __func__ = "nvmf_ctrlr_add_io_qpair"
00:11:46.296  #9  0x00007f27062553ce in msg_queue_run_batch (thread=0x1cff540, max_msgs=8) at thread.c:553

where line 230 in ctrlr.c was
assert(ctrlr->admin_qpair->group->thread == spdk_get_thread());
That means that admin qpair was disconnected from the poll
group and controller is in the process of destruction

Change-Id: I818ba56adda5ed3488a8df78483c0b6839758192
Signed-off-by: Alexey Marchuk <alexeymar@mellanox.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/6364
Community-CI: Broadcom CI
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2021-02-18 13:37:01 +00:00
..
accel so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
bdev lib/bdev: ensure mutex is initialized 2021-02-16 08:39:17 +00:00
blob so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
blobfs so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
conf so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
env_dpdk lib/env_dpdk: add rte_net dependency 2021-02-16 08:33:46 +00:00
env_ocf lib/thead: print error log when create mempool or ring failed 2020-11-05 09:41:06 +00:00
event reactor: Construct a function to do common code. 2021-02-09 11:24:36 +00:00
ftl so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
idxd lib/idxd: add a condition to sim workaround 2021-02-05 13:42:32 +00:00
ioat so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
iscsi so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
json so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
jsonrpc so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
log so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
lvol so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
nbd nbd: Continue to read the socket even if the NBD status is not running 2021-02-16 08:40:55 +00:00
net so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
notify so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
nvme nvme/fabric: Make connect related logs more verbose 2021-02-17 10:18:05 +00:00
nvmf nvmf: Fix race condition when adding IO qpair 2021-02-18 13:37:01 +00:00
rdma rdma: Add functions to work with SRQ 2021-02-17 10:19:28 +00:00
reduce so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
rocksdb build: use DEPDIRS variables to build SPDK_LIB_LIST 2020-12-18 09:40:01 +00:00
rpc so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
scsi so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
sock lib/sock: Check conditions together. 2021-02-09 11:24:57 +00:00
thread so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
trace so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
ut_mock so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
util lib/util/math.c: improve portability 2021-02-10 08:44:01 +00:00
vfio_user so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
vhost lib:vhost Add version check when use RTE_VHOST_USER_ASYNC_COPY in 21.01 2021-02-11 08:40:31 +00:00
virtio so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
vmd so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
Makefile NVMe/vfio-user: add initial version vfio-user transport to NVMe driver 2021-01-21 05:00:18 +00:00