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>