-
Notifications
You must be signed in to change notification settings - Fork 12.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
rustc reliably dies partway through a Firefox build on Mac #57632
Comments
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. |
I tried raising it from 10240 to 40000, but I still get the same failure. It's possible that fds are not the issue... |
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. |
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: This is not a cargo bug (unless cargo is intended to deal with non-blocking stdout/stderr file descriptors). |
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. |
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.
The key part of the build log seems to be:
I expect "os error 35" is EAGAIN. It's possible that rustc is running out of file descriptors or something...
I filed a bug on this on the Firefox build system as well: https://bugzilla.mozilla.org/show_bug.cgi?id=1520159
The text was updated successfully, but these errors were encountered: