Re: NFSD threads hang when destroying a session or client ID

Chuck Lever via Bugspray Bot
2025-01-23T21:44:43Z

Chuck Lever writes via Kernel.org Bugzilla:

An RPC task has shown up in the "rpcdebug" output this time:

kernel: [262696.214194] -pid- flgs status -client- --rqstp- -timeout ---ops--
kernel: [262696.214199] 112 2281 0 a6ceb575 0 357 83bde67e nfs4_cbv1 CB_RECALL_ANY a:call_start [sunrpc] q:delayq

Here is a CB_RECALL_ANY operation that is waiting to start. It's in the RPC client's delay_queue, so this looks like it came through the NFS4ERR_DELAY arm of nfsd4_cb_sequence_done(): the RPC was reset to the beginning of the FSM, and rpc_delay was called.

There is a commit missing from origin/linux-6.1.y:

961b4b5e86bf ("NFSD: Reset cb_seq_status after NFS4ERR_DELAY")

Without this commit, the server will continue rescheduling this RPC forever. That could be what is blocking rpc_shutdown_client9).

This commit is applied to the nfsd-6.1.y branch of:

https://git.kernel.org/pub/scm/linux/kernel/git/cel/linux.git

Can anyone on a v6.1-based kernel pull this branch and try it?

View: https://bugzilla.kernel.org/show_bug.cgi?id=219710#c21