Spdk/lib/nvmf
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
..
ctrlr_bdev.c nvmf: make zcopy_end void 2022-01-06 18:53:42 +00:00
ctrlr_discovery.c nvmf: add new 'id' to spdk_nvmf_subsystem_listener 2021-12-20 18:12:41 +00:00
ctrlr.c nvmf: Update controller desctruction process 2022-01-20 20:00:51 +00:00
fc_ls.c spelling: lib 2021-12-03 08:12:55 +00:00
fc.c nvmf: Use acceptor_poll_rate value from func args 2022-01-17 14:26:01 +00:00
Makefile nvmf/ctrlr: let transport can set VID SSVID and IEEE values 2021-12-06 23:17:07 +00:00
nvmf_fc.h spelling: lib 2021-12-03 08:12:55 +00:00
nvmf_internal.h nvmf: add reset/shutdown timeout process 2022-01-19 09:04:50 +00:00
nvmf_rpc.c nvmf: zero-copy enable flag in transport opts 2022-01-06 18:53:42 +00:00
nvmf.c nvmf: Update controller desctruction process 2022-01-20 20:00:51 +00:00
rdma.c rdma: Fix icd update to support msdbd 2022-01-20 11:21:58 +00:00
spdk_nvmf.map lib/nvmf : Added support for ZCOPY 2021-07-23 08:34:43 +00:00
subsystem.c nvmf: Update controller desctruction process 2022-01-20 20:00:51 +00:00
tcp.c nvmf: Use acceptor_poll_rate value from func args 2022-01-17 14:26:01 +00:00
transport.c traces: add dtrace probes around qpair/controller/subsystem 2022-01-13 08:44:54 +00:00
transport.h nvmf: remove accept poller from generic layer 2021-12-14 13:18:33 +00:00
vfio_user.c nvmf/vfio-user: post CREATE IO SQ response to VM based on flag 2022-01-20 16:41:52 +00:00