Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: job pipe read: no such process



    Date:        Wed, 20 Feb 2019 20:43:16 +0100
    From:        Thomas Klausner <tk%giga.or.at@localhost>
    Message-ID:  <20190220194316.cojnsgvoikbmnqtw@danbala>

  | I tried again a couple days later and it worked fine.

I looked a little more after the last e-mail, and make does have
signal handlers, which can do killpg() which could have generated
ESRCH - so that's probably the cause of the weird error message.

Naughty signal handler for allowing errno to be altered!

What that means is that if we had just had a sys call err, but
hadn't finished using its errno return yet, then the code gets
mislead - perhaps as bening as just printing an inappropriate
error message.  In this case if the errno had been EAGAIN, the
error would have been ignored (that's expected to happen).

The EAGAIN possibility is real I think, the fd looks to have been
set O_NONBLOCK which could generate EAGAIN on a read - if a signal
which did an unsuccessful killpg() just happened to happen in the
few instructions between when the read failed (EAGAIN) and when that
was tested, then we could have a situation where make would abort
when it shouldn't - all because of the naughty signal handler.

If the error wasn't that, then make was going to abort anyway, we
just don't know what error it was that caused it.

kre



Home | Main Index | Thread Index | Old Index