> Though open(2) does indeed not document this error, it is a documented
> POSIX return and it has been possible that this could get returned on
> open for a TTY for a very long time.
> 
No it isn't, the current and previous editions of POSIX don't document EIO as a 
return for open() - are you sure you're not reading the XSI STREAMS 
specification? :-)  That being said, as I discussed above, open() has always 
apparently returned EIO in Linux for other reasons.  We should probably make 
sure this is documented.

> Yes EIO is not a very intuitive
> return but actually they chose a different return code as it does indeed
> indicate something different than an EAGAIN might. EGAIN generally meaning
> "just do it again" and EIO meaning "this is stuck closing at the moment".
> 
The problem is that EIO is *already* returned from open() to mean "omg, the 
filesystem/block device is on fire! stop! stop! stop!"

> It seems that this is predicated only on your dislike of EIO as a return.
> 
No!  You dangerously misunderstand.

This is predicated on my discovery that open() can already return EIO
for different errors that are catastrophic, and thus code that loops on
EIO isn't possible.  A different error would mean we could retry in
userspace - right now the only option is to fail.

-- 
system services not starting at boot
https://bugs.launchpad.net/bugs/554172
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to