Re: Failure to fallback to nfsd-v3 (?)

Previous thread: [PATCH] mfd: Fix WM8994 error handling by Joonyoung Shim on Saturday, February 6, 2010 - 6:16 pm. (3 messages)

Next thread: [2.6.33-rc5] tty: possible irq lock inversion dependency in tty_fasync by Tetsuo Handa on Saturday, February 6, 2010 - 10:52 pm. (9 messages)
From: OGAWA Hirofumi
Date: Saturday, February 6, 2010 - 8:32 pm

Hi,

I've recently noticed I couldn't mount nfs on 2.6.33-rc6. The environment is

	server (nfsd-v3, 2.6.33-rc6) <-> client (2.6.32.7, nfs-utils 1.2.1)

And mount command is

	# mount server:/path /mntpoint

(i.e. without any options. If I specified "vers=3" option, it works).

With some debugging, it seems to change of the error code on nfsd - the
log of failure is the following.

nfsd_dispatch: vers 4 proc 0
nfsd_dispatch: vers 4 proc 1
nfsv4 compound op #1/3: 24 (OP_PUTROOTFH)
nfsv4 compound op ffff88012d9e10c0 opcnt 3 #1: 24: status 30000
nfsv4 compound returned 30000
nfsd: Dropping request; may be revisited later
found domain *.xxx.xx
found fsidtype 1
found fsid length 4
Path seems to be <>
nfsd_dispatch: vers 4 proc 1
nfsv4 compound op #1/3: 24 (OP_PUTROOTFH)
nfsv4 compound op ffff88012dab6228 opcnt 3 #1: 24: status 10006
nfsv4 compound returned 10006

On the older kernel (2.6.32.7), it seems to fallback to nfsv3,

nfsd_dispatch: vers 4 proc 0
nfsd_dispatch: vers 4 proc 1
nfsv4 compound op #1/3: 24 (OP_PUTROOTFH)
nfsv4 compound op d9c04850 opcnt 3 #1: 24: status 2
nfsv4 compound returned 2
nfsd_dispatch: vers 3 proc 0
[...]


And the following commit seems to change the behavior.

[nfsd4: fix error return when pseudoroot missing]
f39bde24b275ddc45df1ed835725b609e178c7a0

Well, anyway, is this a expected behavior change, or something bug?

Thanks.
-- 
OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
--

From: J. Bruce Fields
Date: Saturday, February 6, 2010 - 9:10 pm

It's expected.  I'd recommend turning off nfsv4 on the server (add "-N4"
to the rpc.nfsd commandline) for now.

--b.
--

From: OGAWA Hirofumi
Date: Sunday, February 7, 2010 - 1:23 am

This looks like the silent user visible change. So, it would be better
to add more comment at least in changelog.

Well, anyway, thanks. (BTW, I assumed rpc.nfsd is typo of rpc.mountd)
-- 
OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
--

From: Christoph Hellwig
Date: Sunday, February 7, 2010 - 1:31 am

Or rather it should be fixed.  We should not silently break existing
and probably rather common setups.

--

From: John Stoffel
Date: Monday, February 8, 2010 - 10:25 am

>>>>> "Christoph" == Christoph Hellwig <hch@infradead.org> writes:


Christoph> Or rather it should be fixed.  We should not silently break existing
Christoph> and probably rather common setups.

Hear hear!  NFS should just gracefully fall back as far as it can.  A
slow mount is better than NO mount.  Esp when /home is mounted via
NFS.

John
--

From: J. Bruce Fields
Date: Monday, February 8, 2010 - 11:31 am

It's really a bug that we're returning an error at all from this point
in the code, so the new client mount code includes a workaround for this
case, added with the code that attempts v4 first by default.

The error we're returning was also wrong.  Unfortunately, my patch to
fix the error went in at around the same time the new mount code went
into nfs-utils, and we communicated poorly about the change.

So:
	- I'm reverting the server patch.  I'd like to reinstate it
	  eventually, depending on how widespread the new mount code
	  was.
	- We'll also make the mount workaround more robust.
	- Most importantly, we need to stamp out the cases where the
	  server hits this error.

--b.
--

From: J. Bruce Fields
Date: Monday, February 8, 2010 - 11:33 am

No, the -N4 tells rpc.mountd to turn off NFSv4 support before starting
the server.

The problem is that the server is accepting NFSv4 rpc calls even though
it doesn't actually support v4, so the mount fails a few rpc's later
with an odd error.

I changed that error around the same time "mount" on the client was
modified to start trying v4 support first, and the mount code included a
workaround for the linux server behavior that only handled exactly the
old errors.

--b.
--

From: J. Bruce Fields
Date: Tuesday, February 9, 2010 - 9:55 am

(Hah!--trying to correct you, I got it wrong myself--I really did mean
rpc.*nfsd*, not rpc.mountd.)

--

From: OGAWA Hirofumi
Date: Tuesday, February 9, 2010 - 7:17 pm

Oh, I was reading very old man page. Thanks for correcting.
-- 
OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
--

Previous thread: [PATCH] mfd: Fix WM8994 error handling by Joonyoung Shim on Saturday, February 6, 2010 - 6:16 pm. (3 messages)

Next thread: [2.6.33-rc5] tty: possible irq lock inversion dependency in tty_fasync by Tetsuo Handa on Saturday, February 6, 2010 - 10:52 pm. (9 messages)