2019-09-27 16:57:31

by Gefei Li

[permalink] [raw]
Subject: Did NFS client hang all OPEN request after SEQ4_STATUS_EXPIRED_SOME_STATE_REVOKED flag is set?

Hi Kernel NFS devs,

From RFC 5661, I know that the flag
SEQ4_STATUS_EXPIRED_SOME_STATE_REVOKED may be a "time-consuming" flag
for client, when received this flag, client needs to check all
existing lock/state.

SEQ4_STATUS_EXPIRED_SOME_STATE_REVOKED
When set, indicates that some subset of the client's locks have
been revoked due to expiration of the lease period followed by
another client's conflicting LOCK operation. This status bit
remains set on all SEQUENCE replies until the loss of all such
locks has been acknowledged by use of FREE_STATEID.

My question is: when client received this flag, did it hang all
incoming "open" syscall on NFS files before the lock/state check
finished?

The problem I met is that my linux VM(with kernel 5.2.11) gives me a
really slow response(sometimes after an hour) after my NFS
traffic(which is heavy) runs for a while, I want to know the root
cause for this slow syscall, and from some packet trace I can get this
flag in some response of SEQUENCE response.

Appreciate your help and thanks in advance.

Thanks,
Gefei