462c12d9e9
The datain handling code path will set the LUN to NULL if it finds a task's LUN has been hotremoved. This could happen before the iscsi hotplug routine actually gets a chance to run. If this happens, one of these tasks doesn't actually get freed, and then will be freed after the lun is closed - causing a segfault in the bdev layer since it may have a bdev_io associated with it. Found by running the iscsi_tgt/fio test after applying the next patch in this series. There's more work needed in this hot remove clean up path - currently we are just freeing a lot of PDUs rather than completing them with error status when a LUN is hot removed. But let's tackle that separately. Signed-off-by: Jim Harris <james.r.harris@intel.com> Change-Id: I8d27f0c7a79ae91cb6504e5ff6ffc8e346c9e54c Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/455460 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> |
||
---|---|---|
.. | ||
bdev | ||
blob | ||
blobfs | ||
conf | ||
copy | ||
env_dpdk | ||
event | ||
ftl | ||
ioat | ||
iscsi | ||
json | ||
jsonrpc | ||
log | ||
lvol | ||
nbd | ||
net | ||
notify | ||
nvme | ||
nvmf | ||
reduce | ||
rocksdb | ||
rpc | ||
scsi | ||
sock | ||
thread | ||
trace | ||
ut_mock | ||
util | ||
vhost | ||
virtio | ||
Makefile |