-
Notifications
You must be signed in to change notification settings - Fork 12.9k
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
interpret: do not ICE when a promoted fails with OOM #133164
Conversation
Some changes occurred to the CTFE machinery cc @rust-lang/wg-const-eval Some changes occurred to the CTFE / Miri interpreter cc @rust-lang/miri Some changes occurred to the CTFE / Miri interpreter cc @rust-lang/miri, @rust-lang/wg-const-eval |
2974592
to
19ae8c0
Compare
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks! You can r=me after deleting the crashes test (which looks like the exact issue this PR correctly addresses :3)
19ae8c0
to
2af9273
Compare
@bors r=jieyouxu |
interpret: do not ICE when a promoted fails with OOM Fixes rust-lang#130687
This comment has been minimized.
This comment has been minimized.
💔 Test failed - checks-actions |
Looks like we don't have graceful OOM handling on macOS
|
2af9273
to
12d7fd8
Compare
@bors r=jieyouxu rollup=iffy |
Hm, this time it's a Linux test...why does it fail on the dist runner but works locally and in PR CI?
|
@RalfJung those look like post-PGO dist tests. AFAIK those are not enabled in PR CI, not without unsetting |
It's not immediately obvious why that would fail in post opt-dist when it didn't fail in stage2 tests though... cc @Kobzol do you have any guesses? |
I see that the dist test has The test is failing with a SIGKILL instead of an expected compiler error; indicating the kernel overcommitted the huge allocation, and then OOM-killed the process when it actually tried to access the whole thing. On my system, jemalloc calls |
But the actually distributed rustc does gracefully handle this allocation failure... playground doesn't SIGKILL. |
We also have another test triggering this OOM at |
12d7fd8
to
c697434
Compare
It SIGKILLs for me on my local machine, using the latest stable & nightly compilers installed through rustup. It also SIGKILLs on Godbolt: https://rust.godbolt.org/z/ThsnaGfKW Perhaps the playground has overcommit disabled? |
I can try using the exact same size as the other test. |
@bors try |
It shows the nice error (and the ICE) on my machine, using nightly installed via rustup. 🤷 |
interpret: do not ICE when a promoted fails with OOM Fixes rust-lang#130687 try-job: aarch64-apple try-job: dist-x86_64-linux
Oh wait I was testing the |
Yeah, looks like the difference in allocation size is all that's needed to trigger the difference in behavior. strace says |
Yeah something like that. Let's see if the try builds succeed now (they really should, since this is basically identical to the existing test), then we can land this. |
☀️ Try build successful - checks-actions |
@bors r=jieyouxu |
☀️ Test successful - checks-actions |
Finished benchmarking commit (89b6885): comparison URL. Overall result: no relevant changes - no action needed@rustbot label: -perf-regression Instruction countThis benchmark run did not return any relevant results for this metric. Max RSS (memory usage)Results (primary 2.3%, secondary -2.5%)This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
CyclesResults (secondary -2.3%)This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
Binary sizeThis benchmark run did not return any relevant results for this metric. Bootstrap: 795.261s -> 794.555s (-0.09%) |
Fixes #130687
try-job: aarch64-apple
try-job: dist-x86_64-linux