On 5/29/20 11:22 AM, Rob Landley wrote:
> Running a mkroot build, it went:
> 
> Compile toybox....scripts/make.sh: line 34: echo: write error: Resource
> temporarily unavailable
> ...scripts/make.sh: line 34: echo: write error: Resource temporarily 
> unavailable
> ............scripts/make.sh: line 34: echo: write error: Resource temporarily
> unavailable

OK. Bash will do that if the write fails. It looks like fflush() fails and
errno gets set to EAGAIN, which is only supposed to happen if the stdout fd
is set to non-blocking. Bash doesn't set it that way, but the write returns
-1/EAGAIN for some reason.


> I have no idea why the pipe or terminal it's outputting to is congested. 
> There's
> nothing in dmesg about it. But that's not the problem: I _assume_ bash's echo
> won't output a message for that, and my echo should not output a message for
> this either. (temporarily means it should retry? My echo hasn't set any signal
> handlers and the default behavior is SA_RESTART?)

Bash doesn't mess with the signal behavior in that sense -- the only
signals it sets SA_RESTART on are SIGCHLD, SIGWINCH, and, in previous
versions, SIGTERM. None of that should be happening in a non-interactive
shell.

But I don't assume that -1/EAGAIN is the result of a signal. It could
potentially be SIGCHLD, but bash sets that to SA_RESTART when it installs
its handler.

Chet
-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
                 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRU    c...@case.edu    http://tiswww.cwru.edu/~chet/
_______________________________________________
Toybox mailing list
Toybox@lists.landley.net
http://lists.landley.net/listinfo.cgi/toybox-landley.net

Reply via email to