Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.
Sign upNightly regression on x86_64_unknown_linux_gnu #43126
Comments
This comment has been minimized.
This comment has been minimized.
|
Seems to work for me (at least locally) on |
This comment has been minimized.
This comment has been minimized.
|
Ok, I think there's three things going on:
|
This comment has been minimized.
This comment has been minimized.
|
It'd be good to verify if this is fixed by rerunning on a more recent nightly. Marking as a regression for now though... |
This comment has been minimized.
This comment has been minimized.
|
@Mark-Simulacrum I just re-ran the travis build and now it seems both |
Mark-Simulacrum
added
regression-from-stable-to-beta
and removed
regression-from-stable-to-nightly
labels
Jul 19, 2017
This comment has been minimized.
This comment has been minimized.
|
I can't seem to reproduce locally on macOS either... |
This comment has been minimized.
This comment has been minimized.
|
@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... |
This comment has been minimized.
This comment has been minimized.
|
@alexcrichton I'll see if I can try a couple of things to reproduce it if I can find some time. |
Mark-Simulacrum
added
the
C-bug
label
Jul 28, 2017
This comment has been minimized.
This comment has been minimized.
|
Might have the same bug in combine https://travis-ci.org/Marwes/combine/jobs/261073809. Compiling on windows with nightly works fine as well. |
This comment has been minimized.
This comment has been minimized.
|
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 |
This comment has been minimized.
This comment has been minimized.
|
That might actually be the problem, I have a macro in mine that recurses ~128 times (each adding to a type with |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
@TimNN @Mark-Simulacrum -- any chance either of you want to try and bisect the more narrow example that @Marwes gave here? |
This comment has been minimized.
This comment has been minimized.
|
triage: P-high -- seems like a valid regression we need to investigate. |
rust-highfive
added
the
P-high
label
Aug 17, 2017
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
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 |
This comment has been minimized.
This comment has been minimized.
|
@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? |
This comment has been minimized.
This comment has been minimized.
|
@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). |
This comment has been minimized.
This comment has been minimized.
|
@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.* | lessAnd then there should be a "pretty graph" at the top of the output |
alexcrichton
modified the milestone:
1.20
Aug 23, 2017
nikomatsakis
assigned
pnkfelix
Aug 24, 2017
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
1.20 is now stable |
alexcrichton
added
the
regression-from-stable-to-stable
label
Aug 28, 2017
alexcrichton
removed
the
regression-from-stable-to-beta
label
Aug 28, 2017
This comment has been minimized.
This comment has been minimized.
|
Update: @pnkfelix mentioned to me that he was going to attempt to land a |
This comment has been minimized.
This comment has been minimized.
|
#44219 is the PR. |
This comment has been minimized.
This comment has been minimized.
|
@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() } |
This comment has been minimized.
This comment has been minimized.
|
Can we confirm if this is fixed (for now) by #44249? |
Aceeri commentedJul 8, 2017
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: slide-rs/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.