From: Dr Fields James Bruce <bfields@fieldses.org>
To: "Antti Tönkyrä" <daedalus@pingtimeout.net>
Cc: Trond Myklebust <trond.myklebust@primarydata.com>,
Linux NFS Mailing List <linux-nfs@vger.kernel.org>
Subject: Re: Patch for mapping EILSEQ into NFSERR_INVAL
Date: Tue, 3 Dec 2013 15:48:06 -0500 [thread overview]
Message-ID: <20131203204806.GA2648@fieldses.org> (raw)
In-Reply-To: <529CF322.4080701@pingtimeout.net>
On Mon, Dec 02, 2013 at 10:52:50PM +0200, Antti Tönkyrä wrote:
> On 2013-12-02 22:45, Trond Myklebust wrote:
> >On Dec 2, 2013, at 15:21, Antti Tönkyrä <daedalus@pingtimeout.net> wrote:
> >
> >>Hello,
> >>
> >>NTFS file system and some other filesystems seem to return EILSEQ when user passes badly formatted data. Current NFSv4 implementation does not map EILSEQ into any known NFSv4 error code which causes problems in some use cases. In my case I observed that if filesystem returns EILSEQ, the NFS share will begin I/O erroring until it's able to recover (If there are handles open to the files in the share, I/O errors will continue until they are closed after which the share recovers after small period of time).
So how exactly does that happen? I'd expect an error on open or lookup
to prevent the client from ever getting a filehandle in the first place.
Looking back at https://bugzilla.kernel.org/attachment.cgi?id=116211 ...
OK, it makes sense that touching a file with a bad name would get an
error, but you're seeing that cause later creates of files on the same
filesystem fail. I can't figure out why that would happen.
Could we see a network trace showing that happen?
Would also be nice to confirm whether this is reproduceable with
something other than ZFS.
--b.
> >>
> >>Given that widely used ntfs-3g FUSE module also returns EILSEQ on the same case (I tested this) I would argue that a fix should be done for upstream especially since RFC5661 clearly defines that invalid UTF-8 sequence should map into NFSERR_INVAL, exact quote: "Where the client sends an invalid UTF-8 string, the server should return NFS4ERR_INVAL (see Table 5)".
> >The NFS client will then happily map that straight into EINVAL for you...
> >
> >Cheers,
> > Trond
> Hello,
>
> But if we get a (somewhat) sane error back, we'd avoid the whole NFS
> share dying in I/O errors because someone decided to touch a file
> with his terminal having wrong charset (if I understood this
> correctly). The problem here is that we don't simply get one I/O
> error from the offending file, but rather that the whole share dies
> after EILSEQ is returned from the backing filesystem.
next prev parent reply other threads:[~2013-12-03 20:48 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-02 20:21 Patch for mapping EILSEQ into NFSERR_INVAL Antti Tönkyrä
2013-12-02 20:45 ` Trond Myklebust
2013-12-02 20:52 ` Antti Tönkyrä
2013-12-03 20:48 ` Dr Fields James Bruce [this message]
2013-12-03 21:22 ` Dr Fields James Bruce
2013-12-04 6:55 ` Antti Tönkyrä
2013-12-04 15:41 ` Dr Fields James Bruce
2013-12-04 20:44 ` Antti Tönkyrä
2013-12-04 21:03 ` Dr Fields James Bruce
2013-12-04 21:08 ` Antti Tönkyrä
2013-12-04 21:22 ` Trond Myklebust
2013-12-04 21:38 ` Dr Fields James Bruce
2013-12-04 22:49 ` Trond Myklebust
2013-12-05 8:39 ` Antti Tönkyrä
2013-12-04 12:33 ` Antti Tönkyrä
2013-12-04 12:40 ` Antti Tönkyrä
2013-12-04 8:31 ` Christoph Hellwig
2013-12-04 11:15 ` Antti Tönkyrä
2013-12-04 11:19 ` Christoph Hellwig
2013-12-04 11:34 ` Antti Tönkyrä
2013-12-05 19:45 ` J. Bruce Fields
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20131203204806.GA2648@fieldses.org \
--to=bfields@fieldses.org \
--cc=daedalus@pingtimeout.net \
--cc=linux-nfs@vger.kernel.org \
--cc=trond.myklebust@primarydata.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).