Spdk/lib/iscsi
Shuhei Matsumoto 3cfb1fe8dd iscsi: Schedule the connection only after completing login processing
Previously the connection was scheduled to another core just
after setting conn->full_feature to 1, but conn->state was still
ISCSI_CONN_STATE_INVALID. The connection started to run on another
core but could not run normally until conn->state became
ISCSI_CONN_STATE_RUNNING. conn->state was changed late to
ISCSI_CONN_STATE_RUNNING after sending the first login reponse.

This gap window had caused intermittent critical failures.

Based on this analysis, this patch changes to call
spdk_iscsi_conn_schedule() just after sending the final login response.
Whether any login response is final or not can be known by checking
conn->full_feature is not zero.

    Fixes #785

Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Change-Id: I8ea55fef27e2f332fcd789d32daf479a24c0588d
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/457414
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Reviewed-by: Ziye Yang <ziye.yang@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
2019-06-10 09:43:09 +00:00
..
conn.c lib/iscsi: fix iscsi connection schedule 2019-06-05 17:39:12 +00:00
conn.h iscsi: Deprecate MinConnectionsPerCore 2019-05-06 17:10:48 +00:00
init_grp.c iscsi: Remove the prefix spdk_ from names of private functions 2019-04-01 00:52:56 +00:00
init_grp.h iscsi: Use not C++ style comments // but C-style comments /* */ 2018-10-31 22:01:47 +00:00
iscsi_rpc.c lib/iscsi: Make iscsi_shutdown_tgt_node_by_name asynchronous 2019-04-22 16:00:42 +00:00
iscsi_subsystem.c iscsi: fix double free when failed to start target 2019-05-13 07:55:40 +00:00
iscsi.c iscsi: Schedule the connection only after completing login processing 2019-06-10 09:43:09 +00:00
iscsi.h iscsi: Remove SPDK_SUCCESS and use 0 instead 2019-06-06 02:08:15 +00:00
Makefile iscsi: Move acceptor into portal_grp 2019-05-16 23:23:45 +00:00
md5.c astyle: enforce braces around single-line statements 2017-12-11 11:19:32 -05:00
md5.h include: Move the remainder of the code base to stdinc.h 2017-05-08 13:20:36 -07:00
param.c iscsi: Remove the prefix spdk_ from names of private functions 2019-04-01 00:52:56 +00:00
param.h include: Move the remainder of the code base to stdinc.h 2017-05-08 13:20:36 -07:00
portal_grp.c iscsi: Move acceptor into portal_grp 2019-05-16 23:23:45 +00:00
portal_grp.h iscsi: Move acceptor into portal_grp 2019-05-16 23:23:45 +00:00
task.c iscsi: Remove the prefix spdk_ from names of private functions 2019-04-01 00:52:56 +00:00
task.h iscsi: Propagate SCSI error status to split SCSI read/write commands 2018-12-11 16:37:55 +00:00
tgt_node.c lib/scsi: Make spdk_scsi_dev_destruct asynchronous 2019-04-22 18:22:59 +00:00
tgt_node.h lib/iscsi: Make iscsi_tgt_node_destruct asynchronous 2019-04-22 16:00:42 +00:00