Re: NFS EINVAL on open(... | O_TRUNC) on 2.6.23.9

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Chuck Lever
Date: Wednesday, December 26, 2007 - 7:24 am

On Dec 25, 2007, at 5:04 PM, Andrew Morton wrote:

Linux NFS client issues with servers that are old or not widely used  
should be reported to linux-nfs@vger.kernel.org (thanks for  
forwarding this, Andrew).

User space servers are usually not tested with NFS client changes,  
since their use is infrequent compared with Solaris, NetApp filers,  
and the Linux knfsd (and several others).  We have to draw the line  
somewhere to make NFS client development a manageable process.


It's likely the NFS client team is not aware of problems with these  
servers simply because none of us run them, and nothing has been  
reported so far.


An EINVAL return is fairly generic, but since it is coming from the  
reply path on the client, that probably indicates that decoding the  
reply failed somehow.  That could be a client problem, or the server  
reply was incorrect or corrupt.

More specific information about the problem is needed.  Could we see  
a wire trace?  A raw tcpdump or tethereal dump captured during the  
problematic interaction would be helpful.  Maybe even an strace of  
the failing application would tell us what the arguments for the  
setattr() call are.  And what are your mount options, especially  
which NFS version? (cat /proc/mounts)

Have you tried a 'git bisect' or something similar to track down  
exactly when client behavior changed?


If NFS servers don't conform to the NFS protocol specification, then  
it's unlikely that the NFS client will be changed to fix such  
issues.  Ie: server bugs need to be fixed on the server.  That is  
sometimes difficult if the server is not maintained, for instance.


Report the problems on the linux-nfs@vger.kernel.org mailing list, or
document them in the official bug databases (either the Linux kernel  
bugzilla or the NFSv4 bug tracker at http://bugzilla.linux-nfs.org/


The general policy is that if a server behaves in ways that don't  
conform to the NFS spec, then the Linux NFS client probably won't  
work with it.  If the client works with a broken server today, there  
is no guarantee that it will continue to work.


--
Chuck Lever
chuck[dot]lever[at]oracle[dot]com
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
NFS EINVAL on open(... | O_TRUNC) on 2.6.23.9, Gianluca Alberici, (Sat Dec 22, 3:52 am)
Re: NFS EINVAL on open(... | O_TRUNC) on 2.6.23.9, Gianluca Alberici, (Sun Dec 23, 4:35 am)
Re: NFS EINVAL on open(... | O_TRUNC) on 2.6.23.9, Andrew Morton, (Tue Dec 25, 3:04 pm)
Re: NFS EINVAL on open(... | O_TRUNC) on 2.6.23.9, Gianluca Alberici, (Wed Dec 26, 4:14 am)
Re: NFS EINVAL on open(... | O_TRUNC) on 2.6.23.9, Chuck Lever, (Wed Dec 26, 7:24 am)
Re: NFS EINVAL on open(... | O_TRUNC) on 2.6.23.9, Gianluca Alberici, (Sat Jan 19, 4:29 am)
Re: NFS EINVAL on open(... | O_TRUNC) on 2.6.23.9, Gianluca Alberici, (Sat Jan 19, 5:35 am)