-
Notifications
You must be signed in to change notification settings - Fork 13.3k
Firefox build failure for win32 with Rust 1.22 (exit code: 3221225477) #46045
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
Comments
Sorry for the late report. I tried to debug a bit locally but haven't been successful in generating a better report. Maybe something with |
This corresponds to Gecko bug 1417268. |
(3221225477 = 0xc0000005 = STATUS_ACCESS_VIOLATION) |
Thanks @kennytm. Note this a regression from 1.21.0 stable. |
The problem doesn't occur with 1.23.0-nightly from October 31 from from November 15. It's only an issue with the current beta series. |
Well that certainly narrows it down some! Is it possible to narrow down when within the beta series the problem started? |
cc @rust-lang/compiler @alexcrichton -- late-breaking beta regression |
Is it running out of memory? Does it occur after a LLVM update? |
@eddyb I believe we did recently upgrade LLVM... not sure though. |
@rillian can you test with |
@rillian Do you have a JIT debugger installed so we can get a backtrace? |
@michaelwoerister Good idea. Running now. The failure should be near the end. @Zoxc I don't know. How would I find out? NB I'm not able to reproduce this locally; I only see it in our build automation. I'll try to reproduce in an interactive session on one of those machines tomorrow, so having things to try would be good. |
Final line before the failure is
This is running on an AWS c4.4xlarge instance, which apparently had 16 GB of ram (although it's listed as having 30 GB of memory, so running out seems unlikely. OTOH, I'm using the i686-pc-windows-msvc hosted rustc because I had trouble with the 64-bit version calling the wrong linker. Maybe 1.7GB is close enough to exhaust the address space? This might explain why I couldn't reproduce locally too; I was using the 64-bit rustc. |
Sounds likely to me. |
@rillian When you try to reproduce locally, do you also use a 32-bit version of the compiler? |
@michaelwoerister When I tried before I was using the 64-bit version of the compiler. I'm trying with the 32-bit version now, but it will be a while. My local machine is not a c4.4xlarge. :) |
If you're running Windows x64 the compiler should have 4GB to play with since we link with If you have Visual Studio installed, you can enable it as a JIT debugger by going to Debug -> Options -> Just-In-Time and check |
You can also create a minidump of crashes by enabling that in the registry. You can then open the minidump in a debugger to get a stack trace. |
Note that for exhausting address space, the total virtual size should be considered, not just what's resident. On #45854 with 32-bit ARM Linux, I saw the 3GB address space exhausted with only ~2GB rss. |
Just an update: I've still not been able to reproduce with a local 32-bit rustc. We may be able to work around the issue for Firefox builds by just using 64-bit rust, if we can figure out how to pass the correct msvc locations into build scripts. |
@rillian any update here? |
Just saw this comment from the Gecko bug, seems relevant:
|
Any chance this is another instance of the bug known as we send too much stuff to LLVM which was improved by #45575 during 1.22 ..= 1.23? |
I've still not been able to reproduce, and I haven't been able to get access to one of our build hosts to try there. Since we don't see the problem with Rust 1.23 or in local builds, the plan is to move official 32-bit windows Firefox builds to 1.23.0-beta as a work around. Given that, I'm going to stop working on this unless we get some new information. Thanks everyone for your help! |
Rust 1.22.0-beta.3 (and I think earlier betas) Fail to link the gkrust-gtest crate as part of Firefox builds targeting i686-pc-windows-msvc.
The text was updated successfully, but these errors were encountered: