Spdk/lib
Alexey Marchuk 1094e1d898 nvmf: Update controller desctruction process
There is a race condition between controller destruction and
subsystem state change, e.g. admin qpair may already be freed
when a namespace is added or removed. As result in function
poll_group_update_subsystem we may get heap-use-after-free error

Another problem is that some qpair's live time may exceed controller's
life time. To avoid it, start controller destruction process when the last
qpair finished the disconnect process (previously controller started
the descruction process before the last qpair starts to disconnect
and it could lead to raise conditions)

Fixes #2055

Signed-off-by: Alexey Marchuk <alexeymar@mellanox.com>
Change-Id: Ibc99b1d840e4796e1588cc217d65834bb556b909
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/9995
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2022-06-30 13:32:31 -04:00
..
accel accel: Use vectored crc32 operations instead of chaining 2022-06-30 13:32:30 -04:00
bdev trace: add traces around io_device name 2022-06-30 13:32:31 -04:00
blob blobstore: Use RB_TREE to do blob lookup 2022-06-30 13:32:29 -04:00
blobfs trace: move all trace definitions to a separate file 2022-06-30 13:32:26 -04:00
conf so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
dma dma: Add infrstructure for push operation 2022-06-30 13:32:26 -04:00
env_dpdk env_dpdk: ensure that cleanup destructor runs last 2022-06-30 13:32:30 -04:00
env_ocf spelling: lib 2022-06-30 13:32:28 -04:00
event app.c: respect all/0xffff argument 2022-06-30 13:32:31 -04:00
ftl spelling: lib 2022-06-30 13:32:28 -04:00
idxd idxd: When we have a batch of 1, don't submit a batch 2022-06-30 13:32:31 -04:00
init rpc: add method for listing PCI devices 2022-06-30 13:32:29 -04:00
ioat ioat: fix potential double free problem in ioat_channel_start() 2021-06-16 09:00:37 +00:00
iscsi spelling: lib 2022-06-30 13:32:28 -04:00
json json: add spdk_json_write_bytearray 2022-06-30 13:32:29 -04:00
jsonrpc spelling: lib 2022-06-30 13:32:28 -04:00
log lib/log: move some log level function to log.c 2022-06-30 13:32:30 -04:00
lvol spelling: lib 2022-06-30 13:32:28 -04:00
nbd spelling: lib 2022-06-30 13:32:28 -04:00
notify so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
nvme nvme: disconnect ADMIN queue pair when destruct controller 2022-06-30 13:32:31 -04:00
nvmf nvmf: Update controller desctruction process 2022-06-30 13:32:31 -04:00
rdma rdma: Set REMOTE_WRITE permission for iWARP on target side 2022-06-30 13:32:28 -04:00
reduce spelling: lib 2022-06-30 13:32:28 -04:00
rocksdb rocksdb: fix thread name typo 2021-09-03 08:08:20 +00:00
rpc Initial changes. 2022-02-08 15:51:30 -05:00
scsi Lib/iSCSI: add the LUN Resize support 2022-06-30 13:32:31 -04:00
sock lib/sock: create common lookup for spdk_sock_group_impl 2022-06-30 13:32:28 -04:00
thread thread: remove io_device name from ioch tracepoints 2022-06-30 13:32:31 -04:00
trace trace_flags.c: modify errorlog text for duplicate tgroups 2022-06-30 13:32:30 -04:00
trace_parser spelling: lib 2022-06-30 13:32:28 -04:00
ut_mock so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
util util: Add spdk_ioviter for iterating iovecs 2022-06-30 13:32:29 -04:00
vfio_user spelling: lib 2022-06-30 13:32:28 -04:00
vhost lib/vhost: use contructor to initalize g_dpdk_sem 2022-06-30 13:32:31 -04:00
virtio spelling: lib 2022-06-30 13:32:28 -04:00
vmd spelling: lib 2022-06-30 13:32:28 -04:00
Makefile lib/trace_parser: add trace_parser library stubs 2022-06-30 13:32:25 -04:00