You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
rustc reliably dies partway through a Firefox build on Mac #57632
For at least the last several weeks, whenever I do a clean Firefox build (ccache, bit no sccache) on Mac OSX 10.12, rustc dies partway through the build. If I just restart the build it usually completes, though sometimes I'll need multiple restarts.
Have you tried rising your fd limit? Although printing to stdout shouldn't really need to allocate an fd, and EAGAIN seems like an odd error to get when running out of fds.
@bzbarsky Is this still happening on the latest nightly? I recently made a PR that fixed issues with thread locals on OSX. This looks potentially related.
Note that the Firefox build pipes the output of the actual build tool, so cargo's stdout/stderr will be a pipe, but I still wouldn't expect that to cause this error.
Activity
jonas-schievink commentedon Jan 15, 2019
Have you tried rising your fd limit? Although printing to stdout shouldn't really need to allocate an fd, and EAGAIN seems like an odd error to get when running out of fds.
bzbarsky commentedon Jan 15, 2019
I tried raising it from 10240 to 40000, but I still get the same failure.
It's possible that fds are not the issue...
mtak- commentedon Jan 26, 2019
@bzbarsky Is this still happening on the latest nightly? I recently made a PR that fixed issues with thread locals on OSX. This looks potentially related.
bzbarsky commentedon Jan 28, 2019
@mtak Yes, I get the same issue on nightly. Specifically, "rustc 1.34.0-nightly (da6ab95 2019-01-27)".
luser commentedon Mar 5, 2019
Note that the Firefox build pipes the output of the actual build tool, so cargo's stdout/stderr will be a pipe, but I still wouldn't expect that to cause this error.
bsdkurt commentedon Oct 26, 2019
This is caused by stdout/stderr being set to non-blocking by node earlier in the build. cargo writes to stdout, receives EAGAIN/EWOULDBLOCK and fails with the above error. Firefox changed the way it invokes node to use popen which islates node's non-blocking changes to its side of the pipe. See:
https://bugzilla.mozilla.org/show_bug.cgi?id=1500436
https://bugzilla.mozilla.org/show_bug.cgi?id=1520159
This is not a cargo bug (unless cargo is intended to deal with non-blocking stdout/stderr file descriptors).
Mark-Simulacrum commentedon Oct 24, 2021
Sounds like this has been resolved upstream and indeed does not sound like a rustc/cargo bug (we don't expect non-blocking stdout).
Closing.