On Fri, Oct 18, 2019 at 4:08 PM Laurent Bercot <ska-skaw...@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