Spdk/lib
Shuhei Matsumoto 64a268e2e1 iscsi: Fix double dequeue of the primary write task in error handling
By running random, 64KB, 70% write, and 30% read workload and periodical
TCP disconnection from the initiator, segmentation fault have occurred.

By investigation, when the last write task completed and dequeued
the primary write task in spdk_iscsi_task_cpl(), the primary write task
was already dequeued in spdk_clear_all_transfer_task().

This patch dequeues all primary write tasks after all outstanding
tasks complete.

After starting to exit the connection, the connection will not receive
any command. Hence waiting for completion of all pending tasks first will
avoid double dequeue safely.

Change-Id: I8e2b6b756be3a6e096675acc81cdb93fb6a7e350
Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-on: https://review.gerrithub.io/430397
Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com>
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>
2018-10-23 17:58:52 +00:00
..
bdev scripts/rpc.py: add method "send_nvme_cmd" 2018-10-22 22:01:14 +00:00
blob bit_array: return UINT32_MAX if no cleared bits found 2018-10-08 17:03:33 +00:00
blobfs blobfs: align rw buffer to lba of device underneath 2018-09-18 16:35:57 +00:00
conf conf: don't strdup name if section already exist 2018-05-17 17:13:19 +00:00
copy lib/copy: unregister copy engine on finish 2018-10-15 17:42:20 +00:00
env_dpdk env/pci: move the vfio init delay to nvme/pci 2018-10-22 17:57:24 +00:00
event lib/nvmf: add the nvmf qpair to the available poll group 2018-10-16 12:54:02 +00:00
ioat ioat: change the return type of ioat_channel_destruct() to be void 2018-09-18 22:41:00 +00:00
iscsi iscsi: Fix double dequeue of the primary write task in error handling 2018-10-23 17:58:52 +00:00
json json: add utilities function enabling itaration over JSON object 2018-10-18 16:07:37 +00:00
jsonrpc jsonrpc: simplify parsing client response 2018-10-18 16:07:37 +00:00
log Make: Add deps for each shared obj individually 2018-10-09 21:45:26 +00:00
lvol lvol: _spdk_add_lvs_to_list: break loop immediately if find 2018-09-14 03:56:35 +00:00
nbd nbd: add support for io_wait implement in nbd 2018-10-02 22:36:01 +00:00
net lib: fix typos in the lib directory 2018-08-24 17:15:12 +00:00
nvme nvme/pci: increase the init delay to 2s 2018-10-22 17:57:24 +00:00
nvmf nvmf/ctrlr: add debug log for volatile write cache 2018-10-23 08:10:12 +00:00
rocksdb blobfs: add a new API to return file's unique ID 2018-08-29 16:29:22 +00:00
rpc rpc: g_rpc_lock_path: remove redundant plus 2018-09-04 22:21:04 +00:00
scsi trace: remove alias concept 2018-09-05 18:03:43 +00:00
sock sock: set the fd with non_block flag. 2018-10-15 17:57:31 +00:00
thread thread: add the missing newline character 2018-10-18 16:17:39 +00:00
trace trace: remove alias concept 2018-09-05 18:03:43 +00:00
ut_mock test: Simplify the mock library 2018-08-09 17:18:23 +00:00
util util: make spdk_parse_ip_addr return -EINVAL instead -1 2018-10-12 23:34:27 +00:00
vhost vhost/blk: check against hotremoved bdev in GET_CONFIG handler 2018-10-23 17:54:46 +00:00
virtio virtio: clarify feature negotiation failure 2018-08-01 19:16:54 +00:00
Makefile test: remove spdk_cunit library 2018-07-06 18:35:03 +00:00