[lustre-devel] [PATCH 059/622] lustre: ptlrpc: don't zero request handle

James Simmons jsimmons at infradead.org
Thu Feb 27 13:08:47 PST 2020


From: Alexander Boyko <c17825 at cray.com>

LNet can retransmit a request at any time if it isn't replied.
The ptlrpc_resend_req zero the request handle and ptlrpc_send_rpc
set it. If retransmission happen with zeroed handle, the client
can't find a valid export by handle and set rq_export to NULL and
reply with ENOTCONN. A server evict client with this error.

client (nid x.x.x.x at tcp) returned error from blocking AST
(req status -107 rc -107), evict it

WC-bug-id: https://jira.whamcloud.com/browse/LU-11117
Lustre-commit: 00c72ab6bb43 ("LU-11117 ptlrpc: don't zero request handle")
Signed-off-by: Alexander Boyko <c17825 at cray.com>
Cray-bug-id: LUS-6037
Reviewed-on: https://review.whamcloud.com/32781
Reviewed-by: Mikhail Pershin <mpershin at whamcloud.com>
Reviewed-by: Alexey Lyashkov <c17817 at cray.com>
Reviewed-by: Oleg Drokin <green at whamcloud.com>
Signed-off-by: James Simmons <jsimmons at infradead.org>
---
 fs/lustre/ptlrpc/client.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/fs/lustre/ptlrpc/client.c b/fs/lustre/ptlrpc/client.c
index 9b41c12..d28a9cd 100644
--- a/fs/lustre/ptlrpc/client.c
+++ b/fs/lustre/ptlrpc/client.c
@@ -2728,7 +2728,6 @@ void ptlrpc_resend_req(struct ptlrpc_request *req)
 		return;
 	}
 
-	lustre_msg_set_handle(req->rq_reqmsg, &(struct lustre_handle){ 0 });
 	req->rq_status = -EAGAIN;
 
 	req->rq_resend = 1;
-- 
1.8.3.1



More information about the lustre-devel mailing list