Whamcloud - gitweb
LU-14708 ptlrpc: skip unnecessary client eviction 34/43834/15
authorVladimir Saveliev <vladimir.saveliev@hpe.com>
Mon, 11 Sep 2023 19:32:00 +0000 (22:32 +0300)
committerOleg Drokin <green@whamcloud.com>
Wed, 25 Oct 2023 18:04:21 +0000 (18:04 +0000)
commit71f8e5d6506fb36d56d03024f68da23de84d92d3
treeb4c1688c6826e621d94f6f2517983d571437e189
parent85944639da7238ff61fca480c21cfd4778391c4f
LU-14708 ptlrpc: skip unnecessary client eviction

A server does not update last_rcvd file on connection of new clients
synchronously. If the server fails over before the last_rcvd update is
committed, recently connected client may find itself evicted
unexpectedly.

If a client has not cached any data from a server and has not
performed any modifying rpcs to the server - let the client to connect
as a new one instead of considering itself as evicted.

Test to illustrate the issue is included.

Fixes: dcc8b9c00d5 "LU-9679 ptlrpc: list_for_each improvements"
Change-Id: I0c2d9c3b67cbc69c3283422f1f581b42f7f13a1a
HPE-bug-id: LUS-7141
Signed-off-by: Vladimir Saveliev <vladimir.saveliev@hpe.com>
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/43834
Tested-by: Maloo <maloo@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Mikhail Pershin <mpershin@whamcloud.com>
lustre/include/lustre_import.h
lustre/ptlrpc/client.c
lustre/ptlrpc/import.c
lustre/tests/recovery-small.sh