Re: nfs stalls client: nfsrv_cache_session: no session

From: Rick Macklem <rmacklem_at_uoguelph.ca>
Date: Sat, 16 Jul 2022 14:19:10 UTC
Peter <pmc@citylink.dinoex.sub.org> wrote:
> Hija,
>   I have a problem with NFSv4:
> 
> The configuration:
>   Server Rel. 13.1-RC2
>     nfs_server_enable="YES"
>     nfs_server_flags="-u -t --minthreads 2 --maxthreads 20 -h ..."
>     mountd_enable="YES"
>     mountd_flags="-S -p 803 -h ..."
>     rpc_lockd_enable="YES"
>     rpc_lockd_flags="-h ..."
>     rpc_statd_enable="YES"
>     rpc_statd_flags="-h ..."
>     rpcbind_enable="YES"
>     rpcbind_flags="-h ..."
>     nfsv4_server_enable="YES"
>     sysctl vfs.nfs.enable_uidtostring=1
>     sysctl vfs.nfsd.enable_stringtouid=1
> 
>   Client bhyve Rel. 13.1-RELEASE on the same system
>     nfs_client_enable="YES"
>     nfs_access_cache="600"
>     nfs_bufpackets="32"
>     nfscbd_enable="YES"
> 
>   Mount-options: nfsv4,readahead=1,rw,async
> 
> 
> Access to the share suddenly stalled. Server reports this in messages,
> every second:
>    nfsrv_cache_session: no session IPaddr=192.168...
The attached little patch might help. It will soon be in stable/13, but is not
in releng/13.1.
It fixes the only way I am aware of that the client's "nfscl" thread
can get "stuck" on an old session and not do session recovery.
It might be worth applying it to the client.

This still doesn't explain how the session got broken in the first place.

rick

Restarting nfsd and mountd didn't help, only now the client started to
also report in messages, every second:
   nfs server 192.168...:/var/sysup/mnt/tmp.6.56160: is alive again

Mounting the same share anew to a different place works fine.

The network babble is this, every second:
   NFS request xid 1678997001 212 getattr fh 0,6/2
   NFS reply xid 1678997001 reply ok 52 getattr ERROR: unk 10052

Forensics: I tried to build openoffice on that share, a couple of
   times. So there was a bit of traffic, and some things may have
   overflown.

There seems to be no way to recover, only crashing the client.