Skip to content
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

stage 1 ui test fails but only once: too big for the current architecture #53429

Closed
RalfJung opened this issue Aug 16, 2018 · 8 comments
Closed
Labels
C-bug Category: This is a bug. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@RalfJung
Copy link
Member

When I run stage 1 ui tests, it sometimes happens that I get a failure in ui/huge-array.rs:

the type [[u8; 1518599999]; 1518600000] is too big for the current architecture

But then, when I rerun the tests, it works. That is rather odd, isn't it?

@RalfJung
Copy link
Member Author

I didn't realize that this is an expected-to-fail test. The problem is that it segfaults:

error: Error: expected failure status (Some(1)) but received status None.
status: signal: 11
command: "/home/r/src/rust/rustc.2/build/x86_64-unknown-linux-gnu/stage1/bin/rustc" "/home/r/src/rust/rustc.2/src/test/ui/huge-array.rs" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "-o" "/home/r/src/rust/rustc.2/build/x86_64-unknown-linux-gnu/test/ui/huge-array/a" "-Crpath" "-O" "-Zunstable-options" "-Lnative=/home/r/src/rust/rustc.2/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/home/r/src/rust/rustc.2/build/x86_64-unknown-linux-gnu/test/ui/huge-array/auxiliary" "-A" "unused"

@RalfJung
Copy link
Member Author

RalfJung commented Aug 17, 2018

So, @eddyb concluded that this is an LLVM assertion failing.

My guess is that this might be some kind of OOM situation? Working fine when it is the only test running but not when there's many being run in parallel? However, I am not experiencing the thrashing that usually comes with OOM, and I cannot find any trace of the OOM killer in my system log.

@eddyb
Copy link
Member

eddyb commented Aug 17, 2018

I don't think it's OOM, if you enable LLVM assertions you'll see them spuriously failing on this test.

cc @alexcrichton @pnkfelix @nikomatsakis some of us have seen this before (in compile-fail).

@alexcrichton
Copy link
Member

LLVM may be segfaulting due to "oom" or a null pointer dereference. I think that it could be a case that if malloc isn't checked but has a huge size it returns null (no thrashing) and maybe that just causes problems in LLVM? The best way to debug this would probably be a core dump to see where it's faulting in LLVM

@pnkfelix pnkfelix added the T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. label Sep 14, 2018
@pnkfelix
Copy link
Member

(Could this perhaps be caused by async LLVM, which may explain why it is spurious/transient? See also #49928)

@Enselic
Copy link
Member

Enselic commented Oct 12, 2023

Triage: Is this still happening? If not I think we can close this issue. (I will do so at a later point unless this is reported to still be a problem.)

@RalfJung
Copy link
Member Author

I haven't seen this in a long time.

@Enselic
Copy link
Member

Enselic commented Nov 4, 2024

Triage: Thanks for the update. Let's close this then.

@Enselic Enselic closed this as not planned Won't fix, can't repro, duplicate, stale Nov 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-bug Category: This is a bug. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

No branches or pull requests

5 participants