Date: Sat, 27 Aug 2011 09:00:34 -0400 (EDT) From: Rick Macklem <rmacklem@uoguelph.ca> To: Steve Wills <swills@FreeBSD.org> Cc: freebsd-current@FreeBSD.org Subject: Re: NFS mountd version 3 over TCP Message-ID: <1032633878.435433.1314450034816.JavaMail.root@erie.cs.uoguelph.ca> In-Reply-To: <4E585E8F.2050701@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Steve Wills wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > On 08/26/11 22:16, Steve Wills wrote: > > On 08/26/11 21:41, Steve Wills wrote: > >> Hi, > > > >> I'm trying to use 9.0-CURRENT as an NFS server for a VMWare ESXi > >> 4.1.0. > >> When I attempt the mount, it logs this message: > > > >> The NFS server does not support MOUNT version 3 over TCP > > > >> Have I configured something wrong and if so what? Or is this > >> something > >> related to the new NFS code? > > > > I guess a little more info would be helpful... > > > > rc.conf has: > > > > nfs_server_enable="YES" > > rpcbind_enable="YES" > > mountd_enable="YES" > > rpc_statd_enable="YES" > > rpc_lockd_enable="YES" > > > > /etc/exports contains, amongst others: > > > > /boxy/vmware -alldirs -maproot=0:0 -network 10.0.1 -mask > > 255.255.255.0 > > > > rpcinfo shows: > > > > program version netid address service owner > > 100000 4 tcp 0.0.0.0.0.111 rpcbind superuser > > 100000 3 tcp 0.0.0.0.0.111 rpcbind superuser > > 100000 2 tcp 0.0.0.0.0.111 rpcbind superuser > > 100000 4 udp 0.0.0.0.0.111 rpcbind superuser > > 100000 3 udp 0.0.0.0.0.111 rpcbind superuser > > 100000 2 udp 0.0.0.0.0.111 rpcbind superuser > > 100000 4 tcp6 ::.0.111 rpcbind superuser > > 100000 3 tcp6 ::.0.111 rpcbind superuser > > 100000 4 udp6 ::.0.111 rpcbind superuser > > 100000 3 udp6 ::.0.111 rpcbind superuser > > 100000 4 local /var/run/rpcbind.sock rpcbind superuser > > 100000 3 local /var/run/rpcbind.sock rpcbind superuser > > 100000 2 local /var/run/rpcbind.sock rpcbind superuser > > 100005 1 udp6 ::.2.224 mountd superuser > > 100005 3 udp6 ::.2.224 mountd superuser > > 100005 1 tcp6 ::.2.224 mountd superuser > > 100005 3 tcp6 ::.2.224 mountd superuser > > 100005 1 udp 0.0.0.0.2.224 mountd superuser > > 100005 3 udp 0.0.0.0.2.224 mountd superuser > > 100005 1 tcp 0.0.0.0.2.224 mountd superuser > > 100005 3 tcp 0.0.0.0.2.224 mountd superuser This line indicates that mountd over tcp is registered for v3, so I suspect the error message is misleading?? > > As you might guess, this rpcinfo output indicates nfsd wasn't running. > I > am seeing this: > > can't bind udp addr *: Address already in use > Hmm, this should only happen if the nfsd is already running (or was recently running), since nothing else binds to port #2049 normally. (If something else grabbed port#2049 for udp, then that would explain this.) I assume the message was from nfsd? > in syslog. Setting this: > > nfs_server_flags="-t -n 4" > > allowed it to startup, but it then timed out an fsinfo call. Adding -o > to the nfs_server_flags to use the old nfs server allowed vmware to > mount. FWIW, I can't find any reason for the udp message above, > nothing > seems to be using it that I can find. Ideas? tcpdumps are available if > anyone want them. > Could you make sure you have this patch, which was committed by zkirsch as r224637. It was a fix they needed for a customer having difficulties mounting via VMware. (Our discussion about it agreed that the VMware client was broken for this case, but the patch fixed the problem.) If you didn't already have this patch, please test it (ie. apply it and take "-o" off the nfsd flags) and let us know if it fixed your problem? --- head/sys/fs/nfsserver/nfs_nfsdserv.c 2011/07/31 20:06:11 224554 +++ head/sys/fs/nfsserver/nfs_nfsdserv.c 2011/08/03 18:50:19 224637 @@ -620,7 +620,7 @@ vnode_t vp, NFSPROC_T *p, struct nfsexstuff *exp) { u_int32_t *tl; - int error = 0, cnt, len, getret = 1, reqlen, eof = 0; + int error = 0, cnt, getret = 1, reqlen, eof = 0; mbuf_t m2, m3; struct nfsvattr nva; off_t off = 0x0; @@ -714,11 +714,11 @@ eof = 1; } else if (reqlen == 0) cnt = 0; - else if ((off + reqlen) > nva.na_size) + else if ((off + reqlen) >= nva.na_size) { cnt = nva.na_size - off; - else + eof = 1; + } else cnt = reqlen; - len = NFSM_RNDUP(cnt); m3 = NULL; if (cnt > 0) { nd->nd_repstat = nfsvno_read(vp, off, cnt, nd->nd_cred, p, @@ -748,7 +748,7 @@ *tl++ = txdr_unsigned(cnt); } else NFSM_BUILD(tl, u_int32_t *, 2 * NFSX_UNSIGNED); - if (len < reqlen || eof) + if (eof) *tl++ = newnfs_true; else *tl++ = newnfs_false; > Steve > > > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v2.0.17 (FreeBSD) > > iQEcBAEBAgAGBQJOWF6PAAoJEPXPYrMgexuhHPYIAJ6SVxtORDbesvU35ktAS/id > 5iWyTWO3CTHXT42uP4IZBT1o2AWFu6e9wUX84YEZyujMln0E++8hZccaa8zQBJhr > febHkZxqPdQOo/mpg1ci5J70Hs1UBV9cxU3uOA83vxunOM6xwA0B+4krfflj/k7P > cPtpztmuepQQ8/S5hB5ajnfM/gFOh1f2uPwWTj2/5NSWMoVfN3f0539bh05XKfRa > 4X7XKxN/J4HBRGaNjnL8IWu86AW60H9Q3gdisdtT0k9sK4X3DswmiRMlMt4M4rS8 > oX0vrgruTiKZf+bsraYvhuo4JyselXMicTnW7rUOVx8jiNVVk1nymSVF1XDUOrw= > =MeJv > -----END PGP SIGNATURE----- > _______________________________________________ > freebsd-current@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-current > To unsubscribe, send any mail to > "freebsd-current-unsubscribe@freebsd.org"
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1032633878.435433.1314450034816.JavaMail.root>