Whamcloud - gitweb
LU-16297 ptlrpc: don't panic during reconnection 29/49029/9
authorAlexander Boyko <alexander.boyko@hpe.com>
Thu, 3 Nov 2022 11:23:20 +0000 (07:23 -0400)
committerOleg Drokin <green@whamcloud.com>
Tue, 3 Jan 2023 21:34:59 +0000 (21:34 +0000)
commitdf31c4c0b39b8845911344e6fadc008bcba40bb1
treecd1c2fee10c84299454ed6b89c255b81a048c54c
parent92c639769d195bf3ff8c3e77c093338ac6de5e2e
LU-16297 ptlrpc: don't panic during reconnection

ptlrpc_send_rpc() could race with ptlrpc_connect_import_locked()
in the middle of assertion check and this leads to a wrong panic.
Assertion checks

(AT_OFF || imp->imp_state != LUSTRE_IMP_FULL ||

reconnect changes import state and flags
and second part

(imp->imp_msghdr_flags & MSGHDR_AT_SUPPORT) ||
!(imp->imp_connect_data.ocd_connect_flags & OBD_CONNECT_AT)))

MSGHDR_AT_SUPPORT is disabled during client reconnection.
It is not good to use locking at this hot part, so fix changes
assertion to a report.

HPE-bug-id: LUS-10985
Signed-off-by: Alexander Boyko <alexander.boyko@hpe.com>
Change-Id: Ifc9e413c679c3e8a4c8f4f541251bebabae41c82
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/49029
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Alexander Zarochentsev <alexander.zarochentsev@hpe.com>
Reviewed-by: Mikhail Pershin <mpershin@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/ptlrpc/niobuf.c