On Fri, Oct 18, 2019 at 4:08 PM Laurent Bercot <ska-skaware_at_skarnet.org> wrote:
>
> >
> >So, whoever calls s6_supervise_lock_mode() should correctly die, as
> >there is an actual error (that should be reported to the Hurd
> >developers); libs6, libskarnet and the libc are just the messengers.
> >Commenting out the errno check just sweeps the error under the carpet.
>
> I assumed the OS was fine, since s6 worked correctly when the check
> wasn't performed, and that EIEIO was reported as a catch-all way of
> saying "you are trying to do something that cannot happen, i.e. we
> haven't planned for this case at all" - which would just be an
> oversight in the Hurd fifo code.
>
> Obviously, if there was a *real* problem during the operation and
> EIEIO was reported as a panic, the situation is different and the
> check should not be removed.
>
> And that is why everyone - including kernels - should always use
> different error codes for "can't happen" and "unknown run-time issue".
> :)
>
FWIW, it has been fixed in Hurd upstream.
http://git.savannah.gnu.org/cgit/hurd/hurd.git/commit/?id=9b6afcec2f6cfb2f0e0f01962f8d8fe6bd9f6762
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=942558#32
--
Shengjing Zhu
Received on Thu Oct 31 2019 - 17:25:02 UTC