22adcd1487
In _iscsi_conn_free_tasks(), we had parsed conn->write_pdu_list and then parsed conn->queued_datain_tasks. However when we parsed conn->write_pdu_list, if there was any task in conn->queued_datain_tasks, some PDUs were inserted conn->write_pdu_list. Hence after parsing conn->write_pdu_list, new PDUs were in conn->write_pdu_list as orphan. Then orphaned PDUs were freed later but LUN was already freed and critical failure occurred. This patch swaps the order of conn->queued_datain_tasks and conn->write_pdu_list, and add comment to explain the change. Additionally, this patch adds unit test which fails if it runs without this fix. Fixes issue #1030. Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Change-Id: Icb0ffbbbac70792a62939dc55a69df05d2ab9128 Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/475453 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> |
||
---|---|---|
.. | ||
bdev | ||
blob | ||
blobfs | ||
event | ||
ftl | ||
ioat | ||
iscsi | ||
json | ||
jsonrpc | ||
log | ||
lvol | ||
notify | ||
nvme | ||
nvmf | ||
reduce | ||
scsi | ||
sock | ||
thread | ||
util | ||
vhost | ||
json_mock.c | ||
Makefile |