numam-spdk/lib
Alexey Marchuk 478f652436 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-01-20 20:00:51 +00:00
..
accel accel: Use vectored crc32 operations instead of chaining 2022-01-12 08:20:39 +00:00
bdev trace: add traces around io_device name 2022-01-19 08:55:59 +00:00
blob blobstore: Use RB_TREE to do blob lookup 2021-12-31 09:21:35 +00:00
blobfs trace: move all trace definitions to a separate file 2021-10-20 07:22:00 +00:00
conf so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
dma dma: Add infrstructure for push operation 2021-10-20 22:55:52 +00:00
env_dpdk env_dpdk: ensure that cleanup destructor runs last 2022-01-14 08:35:42 +00:00
env_ocf spelling: lib 2021-12-03 08:12:55 +00:00
event app.c: respect all/0xffff argument 2022-01-19 08:56:27 +00:00
ftl spelling: lib 2021-12-03 08:12:55 +00:00
idxd idxd: When we have a batch of 1, don't submit a batch 2022-01-20 07:54:55 +00:00
init rpc: add method for listing PCI devices 2021-12-14 09:08:59 +00:00
ioat ioat: fix potential double free problem in ioat_channel_start() 2021-06-16 09:00:37 +00:00
iscsi spelling: lib 2021-12-03 08:12:55 +00:00
json json: add spdk_json_write_bytearray 2021-12-14 09:08:59 +00:00
jsonrpc spelling: lib 2021-12-03 08:12:55 +00:00
log lib/log: move some log level function to log.c 2022-01-06 16:05:53 +00:00
lvol spelling: lib 2021-12-03 08:12:55 +00:00
nbd spelling: lib 2021-12-03 08:12:55 +00: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-01-20 15:46:36 +00:00
nvmf nvmf: Update controller desctruction process 2022-01-20 20:00:51 +00:00
rdma rdma: Set REMOTE_WRITE permission for iWARP on target side 2021-11-30 09:08:21 +00:00
reduce spelling: lib 2021-12-03 08:12:55 +00:00
rocksdb rocksdb: fix thread name typo 2021-09-03 08:08:20 +00:00
rpc so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
scsi Lib/iSCSI: add the LUN Resize support 2022-01-20 07:56:23 +00:00
sock lib/sock: create common lookup for spdk_sock_group_impl 2021-11-24 08:34:41 +00:00
thread thread: remove io_device name from ioch tracepoints 2022-01-19 13:14:30 +00:00
trace trace_flags.c: modify errorlog text for duplicate tgroups 2022-01-14 11:01:15 +00:00
trace_parser spelling: lib 2021-12-03 08:12:55 +00: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 2021-12-17 09:45:44 +00:00
vfio_user spelling: lib 2021-12-03 08:12:55 +00:00
vhost lib/vhost: use contructor to initalize g_dpdk_sem 2022-01-20 19:09:20 +00:00
virtio spelling: lib 2021-12-03 08:12:55 +00:00
vmd spelling: lib 2021-12-03 08:12:55 +00:00
Makefile lib/trace_parser: add trace_parser library stubs 2021-09-29 08:57:58 +00:00