linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: fs <fs@ercist.iscas.ac.cn>
To: Bryan Henderson <hbryan@us.ibm.com>
Cc: linux-fsdevel <linux-fsdevel@vger.kernel.org>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	Kenichi Okuyama <okuyama@intellilink.co.jp>
Subject: Re: [RFD] What error should FS return when I/O failure occurs?
Date: Wed, 18 May 2005 13:10:24 -0400	[thread overview]
Message-ID: <1116436224.2428.16.camel@CoolQ> (raw)
In-Reply-To: <OF18BF4790.4053D6B0-ON88257004.0063F34D-88257004.006557CA@us.ibm.com>

On Tue, 2005-05-17 at 14:26, Bryan Henderson wrote:
> >Yes, we're sure to abort the operation, but we can't use 
> >exit(EXIT_FAILURE) directly. For HA environment, we should
> >identify the cause of the error, take correspondent action,
> >right? So we need to get the right error.
> 
> You mean a computer program will take the correspondent action?  I think 
> it would take a remarkably intelligent program to respond appropriately to 
> particular failures -- especially if the program isn't tailored to a very 
> specific environment.  In practice, all I ever see a binary response -- 
> one for success, one for failure.  The errno is used at most for giving a 
> three word explanation to a human so the human can respond.  That's why 
> people don't take this issue seriously.
> 
> "pass the errno up" is definitely a layering violation and cheap 
> architecture.  It's why the 3 word description you get is often 
> meaningless -- it's telling you about a failure deep in computations you 
> aren't even supposed to know about.  I myself stay away from errnos where 
> possible and produce error information in English text, with each layer 
> adding information meaningful at that layer.  But where we're sticking 
> with classic errnos, it just doesn't make sense to work really hard on it.
> 
> Nonetheless, I think there's broad agreement, and the current discussion 
> is consistent with it, that if write() fails due to an I/O error, the 
> errno should be EIO.  Whether it's formally specified or not, the standard 
> is there.  That ext3 returns EROFS is either a bug or an implementation 
what standard do you mean?
> convenience compromise or a case where the actual failure is more 
> complicated than you imagine (maybe an operation fails and gets retried -- 
> the original failure caused an automatic switch to R/O and the retry 
> failed because of the R/O status.  Errnos are definitely not sufficient to 
> give you the whole chain of causation for a failure -- if it gives you 
> even the immediate cause, you should feel fortunate).
I suggest you visit our project, see the testing result,
http://developer.osdl.jp/projects/doubt/fs-consistency-and-coherency
For each test case, different FS returns different result.
>From user's perspective, it's really annoying, so, there should be a 
standard which constraints the error type. Otherwise, different fs
can return whatever they want, regardless of the user's need. 
> --
> Bryan Henderson                          IBM Almaden Research Center
> San Jose CA                              Filesystems
> 



  reply	other threads:[~2005-05-18  6:02 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <05May16.114248edt.32448@gpu.utcc.utoronto.ca>
2005-05-17 15:43 ` [RFD] What error should FS return when I/O failure occurs? fs
2005-05-17 18:26   ` Bryan Henderson
2005-05-18 17:10     ` fs [this message]
2005-05-18  7:57       ` Valdis.Kletnieks
2005-05-18 19:06       ` Bryan Henderson
2005-05-17  6:00 Hua Zhong (hzhong)
2005-05-17 17:20 ` fs
  -- strict thread matches above, loose matches on Subject: below --
2005-05-17  5:36 Hua Zhong (hzhong)
2005-05-17 16:55 ` fs
2005-05-16 17:14 fs
2005-05-16  6:35 ` Valdis.Kletnieks
2005-05-16 18:04   ` fs
2005-05-16 17:58     ` Valdis.Kletnieks
2005-05-17 16:47       ` fs
     [not found]         ` <200505171057.10540.vda@ilport.com.ua>
2005-05-17 19:41           ` fs
2005-05-16 20:11   ` Kenichi Okuyama
2005-05-16 20:35     ` Valdis.Kletnieks
2005-05-16 21:39       ` Kenichi Okuyama
2005-05-16 22:04         ` Brad Boyer
2005-05-16 22:30         ` Elladan
2005-05-17  6:17           ` Denis Vlasenko
2005-05-17 18:10             ` Bryan Henderson
2005-05-18  6:54               ` Denis Vlasenko
2005-05-17 21:26           ` Kenichi Okuyama
2005-05-19 15:44             ` Elladan
2005-05-16 22:57         ` Coywolf Qi Hunt
2005-05-16 22:54     ` Coywolf Qi Hunt
2005-05-17 16:06       ` fs
2005-05-16 17:36 ` Hans Reiser
2005-05-16 18:04 ` Bryan Henderson

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=1116436224.2428.16.camel@CoolQ \
    --to=fs@ercist.iscas.ac.cn \
    --cc=hbryan@us.ibm.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=okuyama@intellilink.co.jp \
    /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).