Linux NFSv4 clients are getting (bad sequence-id error!)

Rick Macklem rmacklem at uoguelph.ca
Wed Jul 1 23:20:08 UTC 2015


Ahmed Kamal wrote:
> Hi all,
> 
> I'm a refugee from linux land. I just set up my first freebsd 10.1 zfs box,
> sharing /home over nfs. Since every home directory is its own zfs dataset,
> I chose to use nfsv4 to enable recursively sharing/mounting any directory
> under /home (I understand nfs4 is a must in this scenario!)
> 
> I'm able to mount form linux (rhel5 latest kernel) successfully. Users are
> working fine. However every now and then a user screams that his session is
> frozen. Usually the processes are stuck in nfs_wait or rpc_* state. I tried
> using a much newer linux kernel (3.2 however it still faced the same
> problem). The errors in Linux log files are mostly:
> Jul  1 17:41:47 mammoth kernel: NFS: v4 server nas  returned a *bad
> sequence-id error*!
> Jul  1 17:52:32 mammoth kernel: nfs4_reclaim_locks: unhandled error -11.
> Zeroing state
> Jul  1 17:52:32 mammoth kernel: nfs4_reclaim_open_state: Lock reclaim
> failed!
> 
> My search led me to (https://access.redhat.com/solutions/1328073) a
> detailed analysis of the issue, which you can read over here
> https://dl.dropboxusercontent.com/u/51939288/nfs4-bad-seq.pdf .. NetApp
> confirmed this was a bug for them (I'm wondering if this is still in
> FreeBSD?!)
> 
Well, the Netapp NFS server code is proprietary to them and has no commonality
with the FreeBSD code, so it seems unlikely that they will have the same bug.

> PS: Right before sending this, I saw dmesg on the freebsd box advising
> increasing vfs.nfsd.tcphighwater .. So I up'ed that to 64000. I also up'ed
> the number of nfs server threads (-t) from 10 to 60 (we're roughly 40 linux
> machines)
> 
This indicates that the server's DRC has gotten constipated and this could cause
issues for NFSv4.0.
Things to try:
- the above increase of vfs.nfsd.tcphighwater might do the trick.
  --> You can also try decreasing vfs.nfsd.tcpcachetimeo.
If you can't find values of these that avoid the constipation, you can disable
it by setting vfs.nfsd.cachetcp to 0.

Alternately, go to the Linux client and see if the mount is using minorversion
0 or 1. (I think "nfsstat -m" on the client will do that.)
Then use the minorversion=<N> option to force it to use the other minorversion
(ie. if its 0, force it to 1 or vice versa)
Since NFSv4.1 doesn't use the DRC, I'd guess these are NFSv4.0 mounts and using
NFSv4.1 would avoid any DRC related issues.

Good luck with it, rick

> Any advice is most appreciated!
> 
> Thanks
> _______________________________________________
> freebsd-fs at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-fs
> To unsubscribe, send any mail to "freebsd-fs-unsubscribe at freebsd.org"
> 


More information about the freebsd-fs mailing list