-
Notifications
You must be signed in to change notification settings - Fork 13k
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
Nightly regression on x86_64_unknown_linux_gnu #43126
Comments
Seems to work for me (at least locally) on |
Ok, I think there's three things going on:
|
It'd be good to verify if this is fixed by rerunning on a more recent nightly. Marking as a regression for now though... |
@Mark-Simulacrum I just re-ran the travis build and now it seems both |
I can't seem to reproduce locally on macOS either... |
@Aceeri would it be possible to make a standalone reproduction of this? Right now I'm not even sure how to get access to the commit on my local machine... |
@alexcrichton I'll see if I can try a couple of things to reproduce it if I can find some time. |
Might have the same bug in combine https://travis-ci.org/Marwes/combine/jobs/261073809. Compiling on windows with nightly works fine as well. |
Reproduction: gist playground Seems like for some reason x86_64_unknown_linux_gnu segfaults(?) when trying to compile the trait implementation of an extremely nested type. Each tuple implementation in the gist expands a type as |
That might actually be the problem, I have a macro in mine that recurses ~128 times (each adding to a type with |
@TimNN @Mark-Simulacrum -- any chance either of you want to try and bisect the more narrow example that @Marwes gave here? |
triage: P-high -- seems like a valid regression we need to investigate. |
I attempted to bisect the commit from #43126 (comment) (again with 500MB of ram, I couldn't repro on the latest nightly with full memory). The results were varied (sometimes a segmentation fault and sometimes an illegal instructions, so I'm not sure how helpful or correct the result will be).
Event though I couldn't repro on the latest nightly with 1GB ram, I ran |
@TimNN thanks for work here! Just to see if I understand, is this an OOM? An infinite loop? Do we think that there's a clear cause for this? |
@alexcrichton: I did the bisection from my last comment again, this time with an 8 GB ram limit (which is much larger than the 4GB the OP's failing builds had on travis (if they ran on the container infrastructure)). So I currently believe that some or all of #43546, #40847 and #39409 (and/or maybe others) caused an increase in ram requirements (which may have decreased again in the latest nightly). |
@TimNN are you on Linux? We could try to test this out with massif and valgrind. If you've got the exact compilers and nightlies I can also try to run locally. In general though you can just do: valgrind --tool=massif --trace-children=yes rustc ...
ms_print massif.* | less And then there should be a "pretty graph" at the top of the output |
1.20 is now stable |
Update: @pnkfelix mentioned to me that he was going to attempt to land a |
#44219 is the PR. |
@alexcrichton BTW I had a really hard time getting useful data out of massif (it was claiming the peak memory usage was something like 12kb), until last night @eddyb told me that valgrind/massif do not behave well with jemalloc. So after I hacked the compiler to use the system allocator (via the diff below), I got much more believable results from valgrind/massif.
diff --git a/src/rustc/rustc.rs b/src/rustc/rustc.rs
index bfd01146d2..1c3d8b1da2 100644
--- a/src/rustc/rustc.rs
+++ b/src/rustc/rustc.rs
@@ -9,7 +9,9 @@
// except according to those terms.
#![feature(rustc_private)]
+#![feature(alloc_system)]
+extern crate alloc_system;
extern crate rustc_driver;
fn main() { rustc_driver::main() } |
Can we confirm if this is fixed (for now) by #44249? |
Travis is failing for me on the newer nightlies, but not previous ones and not on stable/beta. I'm willing to guess it has something to do with procedural macros, since other PRs build correctly on this nightly.
Travis builds for comparison:
Success: rustc 1.19.0-nightly (10d7cb44c 2017-06-18)
Failure: rustc 1.19.0-nightly (04145943a 2017-06-19)
Related PR: amethyst/specs#201
Exits with code 101 with no error messages, just a failure. Can't reproduce on Windows, so I am kind of limited in trying to debug this.
The text was updated successfully, but these errors were encountered: