Spdk/lib
Konrad Sztyber b12419a231 tcp: don't abort requests waiting for R2T ACK
It is possible for requests waiting for R2T ACK to receive H2C PDU
before receiving the ACK.  Therefore, the following sequence:

1. Host sends a write request to the target.
2. Target sends R2T PDU to the host and sets request's state to
   AWAITING_R2T_ACK.
3. Host sends H2C PDU to the target, but it doesn't reach the target
   yet.
3. Host sends an abort command to abort that request.  Request's state
   is changed to READY_TO_COMPLETE.
4. Target receives the H2C PDU, sees that request's state is
   READY_TO_COMPLETE, which is unexpected, and terminates the
   connection.

will cause the target to terminate the connection, which is obviously
incorrect.

So, to avoid that, we can treat AWAITING_R2T_ACK state in the same way
as TRANSFERRING_HOST_TO_CONTROLLER and register a poller waiting for the
state to be changed.

Fixes #2789.

Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com>
Change-Id: Idddc627050000b74663dba397dc14d10aa0e284f
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/16641
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
2023-02-13 13:50:15 +00:00
..
accel lib/accel: correct the optional parameter of RPC commands 2023-01-31 10:53:33 +00:00
bdev bdev: remove bdev_register_examine_thread deprecation 2023-02-09 11:20:34 +00:00
blob so_ver: increase all major versions 2023-01-24 08:37:21 +00:00
blobfs so_ver: increase all major versions 2023-01-24 08:37:21 +00:00
conf so_ver: increase all major versions 2023-01-24 08:37:21 +00:00
dma so_ver: increase all major versions 2023-01-24 08:37:21 +00:00
env_dpdk env: expose function to get main core 2023-01-31 10:31:04 +00:00
env_ocf update Intel copyright notices 2022-11-10 08:28:53 +00:00
event so_ver: increase all major versions 2023-01-24 08:37:21 +00:00
ftl so_ver: increase all major versions 2023-01-24 08:37:21 +00:00
idxd so_ver: increase all major versions 2023-01-24 08:37:21 +00:00
init so_ver: increase all major versions 2023-01-24 08:37:21 +00:00
ioat so_ver: increase all major versions 2023-01-24 08:37:21 +00:00
iscsi iscsi: Use error_response() rather than bool_response(false) for JSON RPC 2023-01-31 21:40:09 +00:00
json so_ver: increase all major versions 2023-01-24 08:37:21 +00:00
jsonrpc so_ver: increase all major versions 2023-01-24 08:37:21 +00:00
log so_ver: increase all major versions 2023-01-24 08:37:21 +00:00
lvol so_ver: increase all major versions 2023-01-24 08:37:21 +00:00
mlx5 so_ver: increase all major versions 2023-01-24 08:37:21 +00:00
nbd so_ver: increase all major versions 2023-01-24 08:37:21 +00:00
notify so_ver: increase all major versions 2023-01-24 08:37:21 +00:00
nvme nvme_rdma: Ignore response if its QP was already destroyed 2023-01-25 10:01:03 +00:00
nvmf tcp: don't abort requests waiting for R2T ACK 2023-02-13 13:50:15 +00:00
rdma so_ver: increase all major versions 2023-01-24 08:37:21 +00:00
reduce deprecation: Remove support for PMDK 2023-01-26 15:16:19 +00:00
rocksdb rocksdb: remove spdk_thread 2022-11-23 08:22:04 +00:00
rpc so_ver: increase all major versions 2023-01-24 08:37:21 +00:00
scsi so_ver: increase all major versions 2023-01-24 08:37:21 +00:00
sock sock: Allow flushing even if the socket is in a poll group 2023-01-24 18:18:33 +00:00
thread so_ver: increase all major versions 2023-01-24 08:37:21 +00:00
trace so_ver: increase all major versions 2023-01-24 08:37:21 +00:00
trace_parser so_ver: increase all major versions 2023-01-24 08:37:21 +00:00
ublk ublk: update func ublk_try_close_dev 2023-02-08 15:26:00 +00:00
ut_mock so_ver: increase all major versions 2023-01-24 08:37:21 +00:00
util util: get SPDK_HAVE_* values for crc32.c 2023-02-06 08:34:08 +00:00
vfio_user so_ver: increase all major versions 2023-01-24 08:37:21 +00:00
vfu_tgt so_ver: increase all major versions 2023-01-24 08:37:21 +00:00
vhost so_ver: increase all major versions 2023-01-24 08:37:21 +00:00
virtio lib/virtio_vfio_user: use VIRTIO_PCI_VRING_ALIGN aligned vring address 2023-02-09 11:31:39 +00:00
vmd so_ver: increase all major versions 2023-01-24 08:37:21 +00:00
Makefile ublk: add configure and event/subsystem 2023-01-20 07:48:25 +00:00