linux-nfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [Question]nfs: never returned delegation
@ 2025-08-11 12:48 zhangjian (CG)
  2025-08-11 13:03 ` Trond Myklebust
  2025-08-11 13:03 ` Jeff Layton
  0 siblings, 2 replies; 9+ messages in thread
From: zhangjian (CG) @ 2025-08-11 12:48 UTC (permalink / raw)
  To: Trond Myklebust, anna; +Cc: linux-nfs, linux-kernel

Recently, we meet a NFS problem in 5.10. There are so many test_state_id request after a non-privilaged request in tcpdump result. There are 40w+ delegations in client (I read the delegation list from /proc/kcore).
Firstly, I think state manager cost a lot in nfs_server_reap_expired_delegations. But I see they are all in NFS_DELEGATION_REVOKED state except 6 in NFS_DELEGATION_REFERENCED (I read this from /proc/kcore too). 
I analyze NFS code and find if NFSPROC4_CLNT_DELEGRETURN procedure meet ETIMEOUT, delegation will be marked as NFS4ERR_DELEG_REVOKED and never return it again. NFS server will keep the revoked delegation in clp->cl_revoked forever. This will result in following sequence response with RECALLABLE_STATE_REVOKED flag. Client will send test_state_id request for all non-revoked delegation.
This can only be solved by restarting NFS server.
I think ETIMEOUT in NFSPROC4_CLNT_DELEGRETURN procedure may be not the only case that cause lots of non-terminable test_state_id requests after any non-privilaged request. 
Wish NFS experts give some advices on this problem.


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2025-09-01 14:12 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-11 12:48 [Question]nfs: never returned delegation zhangjian (CG)
2025-08-11 13:03 ` Trond Myklebust
2025-08-12  2:51   ` zhangjian (CG)
2025-09-01  9:07   ` Li Lingfeng
2025-09-01 11:40     ` Jeff Layton
2025-09-01 14:12       ` Li Lingfeng
2025-08-11 13:03 ` Jeff Layton
2025-08-11 13:06   ` Trond Myklebust
2025-08-12  2:45   ` zhangjian (CG)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).