Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 9 Jul 2018 01:15:44 +0000
From:      Rick Macklem <rmacklem@uoguelph.ca>
To:        Daniel Engel <daniel@ftml.net>, "freebsd-stable@freebsd.org" <freebsd-stable@freebsd.org>
Cc:        NAGY Andreas <Andreas.Nagy@frequentis.com>
Subject:   Re: NFS 4.1 RECLAIM_COMPLETE FS failed error
Message-ID:  <YTOPR0101MB0953064BDCF2073F4038B6D1DD440@YTOPR0101MB0953.CANPRD01.PROD.OUTLOOK.COM>
In-Reply-To: <1531087387.2543270.1433935616.5272EA26@webmail.messagingengine.com>
References:  <1531087387.2543270.1433935616.5272EA26@webmail.messagingengine.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Daniel Engel wrote:
>I am setting up an environment with FreeBSD 11.1 sharing a ZFS datastore t=
o vmware >ESXI 6.7.  There were a number of errors with NFS 4.1 sharing tha=
t I didn't >understand until I found the following thread.
>
>    <https://lists.freebsd.org/pipermail/freebsd-stable/2018-March/088486.=
html>
>
>I traced the commits that Rick has made since that thread and merged them =
'head' >into 'stable':
>
>    'svnlite checkout http://svn.freebsd.org/base/release/11.1.0/'
>    'svnlite merge -c 332790 http://svn.freebsd.org/base/head'
>    'svnlite merge -c 333508 http://svn.freebsd.org/base/head'
>    'svnlite merge -c 333579 http://svn.freebsd.org/base/head'
>    'svnlite merge -c 333580 http://svn.freebsd.org/base/head'
>    'svnlite merge -c 333592 http://svn.freebsd.org/base/head'
>    'svnlite merge -c 333645 http://svn.freebsd.org/base/head'
>    'svnlite merge -c 333766 http://svn.freebsd.org/base/head'
>    'svnlite merge -c 334396 http://svn.freebsd.org/base/head'
>    'svnlite merge -c 334492 http://svn.freebsd.org/base/head'
>    'svnlite merge -c 327674 http://svn.freebsd.org/base/head'
>
>That completely fixed the connection instability, but the NFS share was st=
ill mounting >read-only with a RECLAIM_COMPLETE error.  So, I manually appl=
ied the first patch >from the previous thread and everything started workin=
g:
>
>    --- fs/nfsserver/nfs_nfsdserv.c.savrecl     2018-02-10 20:34:31.166445=
000 -0500
>    +++ fs/nfsserver/nfs_nfsdserv.c     2018-02-10 20:36:07.947490000 -050=
0
>    @@ -4226,10 +4226,9 @@ nfsrvd_reclaimcomplete(struct nfsrv_desc
>           goto nfsmout;
>        }
>        NFSM_DISSECT(tl, uint32_t *, NFSX_UNSIGNED);
>    +   nd->nd_repstat =3D nfsrv_checkreclaimcomplete(nd);
>        if (*tl =3D=3D newnfs_true)
>    -           nd->nd_repstat =3D NFSERR_NOTSUPP;
>    -   else
>    -           nd->nd_repstat =3D nfsrv_checkreclaimcomplete(nd);
>    +           nd->nd_repstat =3D 0;
>
>The question is: Did I miss something?  Is there an alternate change alrea=
dy in SVN >that does the same thing better, or is there some corner case pr=
eventing this patch >from being finalized that I just haven't run into yet?
Andreas Nagy has been doing quite a bit of testing for me w.r.t the ESXi 6.=
5
client, but several serious issues (which appear to be violations of the RF=
C to me)
have not yet been resolved.

This email summarizes then:
http://docs.FreeBSD.org/cgi/mid.cgi?YTOPR0101MB0953E687D013E2E97873061ADD72=
0

He recently reported that 6.7 worked better, but he has not yet sent me any
packet traces, so I don't know which issues still exist for 6.7.
I have committed a few things that didn't break the RFC, such as adding
BindConnectiontoSession, but I haven't committed anything else yet,
due to concerns w.r.t. violating the RFC. (The above email thread discusses=
 that.)

I do plan on doing something once I get packet traces from Andreas, but be
forewarned that VMware states "FreeBSD is not a supported server" and that
is certainly true. Andreas uses connection trunking. You might be ok with a
single TCP connection unless the server reboots.
(He runs a bunch of patches I gave him, some of which definitely violate
 the RFC.)

All I can suggest is that you keep an eye on freebsd-current@ for any email
about commits to handle the ESXi client better.

So, this is very much a work in progress, rick



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?YTOPR0101MB0953064BDCF2073F4038B6D1DD440>