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

Always emit an error for a query cycle #57880

Merged
merged 2 commits into from
Feb 16, 2019
Merged

Conversation

Zoxc
Copy link
Contributor

@Zoxc Zoxc commented Jan 24, 2019

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Jan 24, 2019
@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-6.0 of your PR failed on Travis (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
travis_time:end:007c3116:start=1548356913735356130,finish=1548356915038419954,duration=1303063824
$ git checkout -qf FETCH_HEAD
travis_fold:end:git.checkout

Encrypted environment variables have been removed for security reasons.
See https://docs.travis-ci.com/user/pull-requests/#pull-requests-and-security-restrictions
$ export SCCACHE_BUCKET=rust-lang-ci-sccache2
$ export SCCACHE_REGION=us-west-1
Setting environment variables from .travis.yml
$ export IMAGE=x86_64-gnu-llvm-6.0
---
[00:06:05]    Compiling arena v0.0.0 (/checkout/src/libarena)
[00:06:06]    Compiling syntax_pos v0.0.0 (/checkout/src/libsyntax_pos)
[00:06:10]    Compiling rustc_errors v0.0.0 (/checkout/src/librustc_errors)
[00:07:24]    Compiling syntax_ext v0.0.0 (/checkout/src/libsyntax_ext)
[00:08:10] error[E0502]: cannot borrow `lock` as mutable because it is also borrowed as immutable
[00:08:10]    --> src/librustc/ty/query/plumbing.rs:120:21
[00:08:10]     |
[00:08:10] 115 |             if let Some(value) = lock.results.get(key) {
[00:08:10] ...
[00:08:10] ...
[00:08:10] 120 |                     lock.cache_hits += 1;
[00:08:10] 121 |                 }
[00:08:10] 121 |                 }
[00:08:10] 122 |                 return TryGetJob::JobCompleted((value.value.clone(), value.index));
[00:08:10] 
[00:08:14] error: aborting due to previous error
[00:08:14] 
[00:08:14] For more information about this error, try `rustc --explain E0502`.
[00:08:14] For more information about this error, try `rustc --explain E0502`.
[00:08:14] error: Could not compile `rustc`.
[00:08:14] 
[00:08:14] To learn more, run the command again with --verbose.
[00:08:14] command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "build" "--target" "x86_64-unknown-linux-gnu" "-j" "4" "--release" "--locked" "--color" "always" "--features" "" "--manifest-path" "/checkout/src/rustc/Cargo.toml" "--message-format" "json"
[00:08:14] expected success, got: exit code: 101
[00:08:14] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap build
[00:08:14] Build completed unsuccessfully in 0:04:07
[00:08:14] make: *** [all] Error 1
[00:08:14] Makefile:18: recipe for target 'all' failed
The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 2.
travis_time:start:03e04b04
$ date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)
Thu Jan 24 19:17:00 UTC 2019
---
186348 ./obj/build/cache/2019-01-04
161192 ./obj/build/bootstrap/debug/incremental
153280 ./src/tools/clang
145084 ./obj/build/bootstrap/debug/incremental/bootstrap-1o7ipylf5x405
145080 ./obj/build/bootstrap/debug/incremental/bootstrap-1o7ipylf5x405/s-f8uhfakhgm-ezrgfz-2c88epco22fc8
110108 ./obj/build/x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/codegen-backends
107424 ./src/tools/lldb
95108 ./src/tools/clang/test
89964 ./src/llvm-emscripten/test/CodeGen
---
travis_time:end:035a7d88:start=1548357421547692183,finish=1548357421553731501,duration=6039318
travis_fold:end:after_failure.3
travis_fold:start:after_failure.4
travis_time:start:1412ae60
$ ln -s . checkout && for CORE in obj/cores/core.*; do EXE=$(echo $CORE | sed 's|obj/cores/core\.[0-9]*\.!checkout!\(.*\)|\1|;y|!|/|'); if [ -f "$EXE" ]; then printf travis_fold":start:crashlog\n\033[31;1m%s\033[0m\n" "$CORE"; gdb --batch -q -c "$CORE" "$EXE" -iex 'set auto-load off' -iex 'dir src/' -iex 'set sysroot .' -ex bt -ex q; echo travis_fold":"end:crashlog; fi; done || true
travis_fold:end:after_failure.4
travis_fold:start:after_failure.5
travis_time:start:00b9082c
travis_time:start:00b9082c
$ cat ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers || true
cat: ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers: No such file or directory

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-6.0 of your PR failed on Travis (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
travis_time:end:1431ced0:start=1548360361065227711,finish=1548360363094871615,duration=2029643904
$ git checkout -qf FETCH_HEAD
travis_fold:end:git.checkout

Encrypted environment variables have been removed for security reasons.
See https://docs.travis-ci.com/user/pull-requests/#pull-requests-and-security-restrictions
$ export SCCACHE_BUCKET=rust-lang-ci-sccache2
$ export SCCACHE_REGION=us-west-1
Setting environment variables from .travis.yml
$ export IMAGE=x86_64-gnu-llvm-6.0
---
[00:06:02]    Compiling arena v0.0.0 (/checkout/src/libarena)
[00:06:03]    Compiling syntax_pos v0.0.0 (/checkout/src/libsyntax_pos)
[00:06:07]    Compiling rustc_errors v0.0.0 (/checkout/src/librustc_errors)
[00:07:20]    Compiling syntax_ext v0.0.0 (/checkout/src/libsyntax_ext)
[00:08:06] error[E0502]: cannot borrow `lock` as mutable because it is also borrowed as immutable
[00:08:06]    --> src/librustc/ty/query/plumbing.rs:120:21
[00:08:06]     |
[00:08:06] 115 |             if let Some(value) = lock.results.get(key) {
[00:08:06] ...
[00:08:06] ...
[00:08:06] 120 |                     lock.cache_hits += 1;
[00:08:06] 121 |                 }
[00:08:06] 121 |                 }
[00:08:06] 122 |                 return TryGetJob::JobCompleted((value.value.clone(), value.index));
[00:08:06] 
[00:08:10] error: aborting due to previous error
[00:08:10] 
[00:08:10] For more information about this error, try `rustc --explain E0502`.
[00:08:10] For more information about this error, try `rustc --explain E0502`.
[00:08:10] error: Could not compile `rustc`.
[00:08:10] 
[00:08:10] To learn more, run the command again with --verbose.
[00:08:10] command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "build" "--target" "x86_64-unknown-linux-gnu" "-j" "4" "--release" "--locked" "--color" "always" "--features" "" "--manifest-path" "/checkout/src/rustc/Cargo.toml" "--message-format" "json"
[00:08:10] expected success, got: exit code: 101
[00:08:10] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap build
[00:08:10] Build completed unsuccessfully in 0:04:07
[00:08:10] make: *** [all] Error 1
[00:08:10] Makefile:18: recipe for target 'all' failed
The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 2.
travis_time:start:07d27390
$ date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)
Thu Jan 24 20:14:24 UTC 2019
---
travis_time:end:3315ad0f:start=1548360864805257719,finish=1548360864810534134,duration=5276415
travis_fold:end:after_failure.3
travis_fold:start:after_failure.4
travis_time:start:238e7b66
$ ln -s . checkout && for CORE in obj/cores/core.*; do EXE=$(echo $CORE | sed 's|obj/cores/core\.[0-9]*\.!checkout!\(.*\)|\1|;y|!|/|'); if [ -f "$EXE" ]; then printf travis_fold":start:crashlog\n\033[31;1m%s\033[0m\n" "$CORE"; gdb --batch -q -c "$CORE" "$EXE" -iex 'set auto-load off' -iex 'dir src/' -iex 'set sysroot .' -ex bt -ex q; echo travis_fold":"end:crashlog; fi; done || true
travis_fold:end:after_failure.4
travis_fold:start:after_failure.5
travis_time:start:04216166
travis_time:start:04216166
$ cat ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers || true
cat: ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers: No such file or directory
travis_fold:end:after_failure.5
travis_fold:start:after_failure.6
travis_time:start:0efed1e1
$ dmesg | grep -i kill

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-6.0 of your PR failed on Travis (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
travis_time:end:09734c46:start=1548363834218751662,finish=1548363835223353250,duration=1004601588
$ git checkout -qf FETCH_HEAD
travis_fold:end:git.checkout

Encrypted environment variables have been removed for security reasons.
See https://docs.travis-ci.com/user/pull-requests/#pull-requests-and-security-restrictions
$ export SCCACHE_BUCKET=rust-lang-ci-sccache2
$ export SCCACHE_REGION=us-west-1
Setting environment variables from .travis.yml
$ export IMAGE=x86_64-gnu-llvm-6.0
---
Check compiletest suite=mir-opt mode=mir-opt (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
[01:15:23] 
[01:15:23] running 38 tests
[01:15:42] thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:495:22
[01:15:42] .............F..F.....................
[01:15:42] 
[01:15:42] ---- [mir-opt] mir-opt/inline-retag.rs stdout ----
[01:15:42] ---- [mir-opt] mir-opt/inline-retag.rs stdout ----
[01:15:42] thread '[mir-opt] mir-opt/inline-retag.rs' panicked at 'Did not find expected line, error: ran out of mir dump to match against
[01:15:42] Expected Line: "        Retag(_3);"
[01:15:42] Test Name: rustc.bar.Inline.after.mir
[01:15:42] ... (elided)
[01:15:42] ... (elided)
[01:15:42]     bb0: {
[01:15:42] ... (elided)
[01:15:42] ... (elided)
[01:15:42]         Retag(_3);
[01:15:42] ... (elided)
[01:15:42]         Retag(_3);
[01:15:42]         Retag(_6);
[01:15:42]         StorageLive(_9);
[01:15:42]         _9 = (*_3);
[01:15:42]         StorageLive(_10);
[01:15:42]         _10 = (*_6);
[01:15:42]         _0 = Eq(move _9, move _10);
[01:15:42] ... (elided)
[01:15:42]         return;
[01:15:42] ... (elided)
[01:15:42] Actual:
[01:15:42] fn bar() -> bool{
[01:15:42] fn bar() -> bool{
[01:15:42]     let mut _0: bool;
[01:15:42]     scope 1 {
[01:15:42]         scope 3 {
[01:15:42]     }
[01:15:42]     scope 2 {
[01:15:42]     scope 2 {
[01:15:42]         let _1: for<'r, 's> fn(&'r i32, &'s i32) -> bool {foo};
[01:15:42]     }
[01:15:42]     let mut _2: for<'r, 's> fn(&'r i32, &'s i32) -> bool {foo};
[01:15:42]     let mut _3: &i32;
[01:15:42]     let mut _4: &i32;
[01:15:42]     let _5: i32;
[01:15:42]     let mut _6: &i32;
[01:15:42]     let mut _7: &i32;
[01:15:42]     let _8: i32;
[01:15:42]     let mut _9: i32;
[01:15:42]     let mut _10: i32;
[01:15:42]     bb0: {                              
[01:15:42]         StorageLive(_1);
[01:15:42]         _1 = const foo;
[01:15:42]         StorageLive(_2);
[01:15:42]         _2 = _1;
[01:15:42]         StorageLive(_3);
[01:15:42]         StorageLive(_4);
[01:15:42]         _4 = &(promoted[1]: i32);
[01:15:42]         Retag(_4);
[01:15:42]         _3 = &(*_4);
[01:15:42]         Retag(_3);
[01:15:42]         StorageLive(_6);
[01:15:42]         StorageLive(_7);
[01:15:42]         _7 = &(promoted[0]: i32);
[01:15:42]         Retag(_7);
[01:15:42]         _6 = &(*_7);
[01:15:42]         Retag(_6);
[01:15:42]         StorageLive(_9);
[01:15:42]         _9 = (*_3);
[01:15:42]         StorageLive(_10);
[01:15:42]         _10 = (*_6);
[01:15:42]         _0 = Eq(move _9, move _10);
[01:15:42]         StorageDead(_10);
[01:15:42]         StorageDead(_9);
[01:15:42]         StorageDead(_6);
[01:15:42]         StorageDead(_3);
[01:15:42]         StorageDead(_2);
[01:15:42]         StorageDead(_1);
[01:15:42]         StorageDead(_7);
[01:15:42]         StorageDead(_4);
[01:15:42]         return;
[01:15:42] }', src/tools/compiletest/src/runtest.rs:2910:13
[01:15:42] note: Run with `RUST_BACKTRACE=1` for a backtrace.
[01:15:42] 
[01:15:42] ---- [mir-opt] mir-opt/inline-trait-method_2.rs stdout ----
[01:15:42] ---- [mir-opt] mir-opt/inline-trait-method_2.rs stdout ----
[01:15:42] thread '[mir-opt] mir-opt/inline-trait-method_2.rs' panicked at 'Did not find expected line, error: ran out of mir dump to match against
[01:15:42] Expected Line: "    _0 = const X::y(move _2) -> bb1;"
[01:15:42] Test Name: rustc.test2.Inline.after.mir
[01:15:42] ... (elided)
[01:15:42] ... (elided)
[01:15:42] bb0: {
[01:15:42] ... (elided)
[01:15:42] ... (elided)
[01:15:42]     _0 = const X::y(move _2) -> bb1;
[01:15:42] }
[01:15:42] ... (elided)
[01:15:42] Actual:
[01:15:42] fn test2(_1: &dyn X) -> bool{
[01:15:42]     let mut _0: bool;
[01:15:42]     scope 1 {
[01:15:42]     }
[01:15:42]     let mut _2: &dyn X;
[01:15:42]     let mut _3: &dyn X;
[01:15:42]     let mut _4: &dyn X;
[01:15:42]     bb0: {                              
[01:15:42]         StorageLive(_2);
[01:15:42]         StorageLive(_3);
[01:15:42]         _3 = &(*_1);
[01:15:42]         _2 = move _3 as &dyn X (Unsize);
[01:15:42]         StorageDead(_3);
[01:15:42]         StorageLive(_4);
[01:15:42]         _4 = &(*_2);
[01:15:42]         _0 = const X::y(move _4) -> [return: bb2, unwind: bb1];
[01:15:42]     bb1: {
[01:15:42]         resume;
[01:15:42]     }
[01:15:42]     }
[01:15:42]     bb2: {                              
[01:15:42]         StorageDead(_4);
[01:15:42]         StorageDead(_2);
[01:15:42]         return;
[01:15:42] }', src/tools/compiletest/src/runtest.rs:2910:13
[01:15:42] 
[01:15:42] 
[01:15:42] failures:
[01:15:42] failures:
[01:15:42]     [mir-opt] mir-opt/inline-retag.rs
[01:15:42]     [mir-opt] mir-opt/inline-trait-method_2.rs
[01:15:42] 
[01:15:42] test result: FAILED. 36 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out
[01:15:42] 
[01:15:42] 
[01:15:42] 
[01:15:42] command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/compiletest" "--compile-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib" "--run-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "--rustc-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "--src-base" "/checkout/src/test/mir-opt" "--build-base" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/mir-opt" "--stage-id" "stage2-x86_64-unknown-linux-gnu" "--mode" "mir-opt" "--target" "x86_64-unknown-linux-gnu" "--host" "x86_64-unknown-linux-gnu" "--llvm-filecheck" "/usr/lib/llvm-6.0/bin/FileCheck" "--host-rustcflags" "-Crpath -O -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--target-rustcflags" "-Crpath -O -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--docck-python" "/usr/bin/python2.7" "--lldb-python" "/usr/bin/python2.7" "--gdb" "/usr/bin/gdb" "--quiet" "--llvm-version" "6.0.0\n" "--system-llvm" "--cc" "" "--cxx" "" "--cflags" "" "--llvm-components" "" "--llvm-cxxflags" "" "--adb-path" "adb" "--adb-test-dir" "/data/tmp/work" "--android-cross-path" "" "--color" "always"
[01:15:42] 
[01:15:42] 
[01:15:42] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
[01:15:42] Build completed unsuccessfully in 0:11:37
[01:15:42] Build completed unsuccessfully in 0:11:37
[01:15:42] Makefile:48: recipe for target 'check' failed
[01:15:42] make: *** [check] Error 1
The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 2.
travis_time:start:14b9f83c
$ date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)
Thu Jan 24 22:19:48 UTC 2019

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-6.0 of your PR failed on Travis (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
travis_time:end:07f6d26e:start=1548518452449537595,finish=1548518454789505962,duration=2339968367
$ git checkout -qf FETCH_HEAD
travis_fold:end:git.checkout

Encrypted environment variables have been removed for security reasons.
See https://docs.travis-ci.com/user/pull-requests/#pull-requests-and-security-restrictions
$ export SCCACHE_BUCKET=rust-lang-ci-sccache2
$ export SCCACHE_REGION=us-west-1
Setting environment variables from .travis.yml
$ export IMAGE=x86_64-gnu-llvm-6.0
---
travis_time:start:test_mir-opt
Check compiletest suite=mir-opt mode=mir-opt (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
[01:14:05] 
[01:14:05] running 38 tests
[01:14:30] ..........F..F..F.....................
[01:14:30] failures:
[01:14:30] 
[01:14:30] ---- [mir-opt] mir-opt/inline-any-operand.rs stdout ----
[01:14:30] ---- [mir-opt] mir-opt/inline-any-operand.rs stdout ----
[01:14:30] thread '[mir-opt] mir-opt/inline-any-operand.rs' panicked at 'Did not find expected line, error: ran out of mir dump to match against
[01:14:30] Expected Line: "    _0 = Eq(move _3, move _4);"
[01:14:30] Test Name: rustc.bar.Inline.after.mir
[01:14:30] ... (elided)
[01:14:30] ... (elided)
[01:14:30] bb0: {
[01:14:30] ... (elided)
[01:14:30] ... (elided)
[01:14:30]     _0 = Eq(move _3, move _4);
[01:14:30] ... (elided)
[01:14:30]     return;
[01:14:30] }
[01:14:30] ... (elided)
[01:14:30] Actual:
[01:14:30] fn bar() -> bool{
[01:14:30]     let mut _0: bool;
[01:14:30]     scope 1 {
[01:14:30]     scope 2 {
[01:14:30]     scope 2 {
[01:14:30]         let _1: fn(i32, i32) -> bool {foo};
[01:14:30]     }
[01:14:30]     let mut _2: fn(i32, i32) -> bool {foo};
[01:14:30]     bb0: {                              
[01:14:30]         StorageLive(_1);
[01:14:30]         _1 = const foo;
[01:14:30]         StorageLive(_2);
[01:14:30]         _2 = _1;
[01:14:30]         _0 = move _2(const 1i32, const -1i32) -> bb1;
[01:14:30]     }
[01:14:30]     bb1: {                              
[01:14:30]         StorageDead(_2);
[01:14:30]         StorageDead(_1);
[01:14:30]         return;
[01:14:30]     bb2: {
[01:14:30]         resume;
[01:14:30]     }
[01:14:30] }', src/tools/compiletest/src/runtest.rs:2952:13
[01:14:30] }', src/tools/compiletest/src/runtest.rs:2952:13
[01:14:30] note: Run with `RUST_BACKTRACE=1` for a backtrace.
[01:14:30] 
[01:14:30] ---- [mir-opt] mir-opt/inline-retag.rs stdout ----
[01:14:30] thread '[mir-opt] mir-opt/inline-retag.rs' panicked at 'Did not find expected line, error: ran out of mir dump to match against
[01:14:30] Expected Line: "        Retag(_3);"
[01:14:30] Test Name: rustc.bar.Inline.after.mir
[01:14:30] ... (elided)
[01:14:30] ... (elided)
[01:14:30]     bb0: {
[01:14:30] ... (elided)
[01:14:30] ... (elided)
[01:14:30]         Retag(_3);
[01:14:30] ... (elided)
[01:14:30]         Retag(_3);
[01:14:30]         Retag(_6);
[01:14:30]         StorageLive(_9);
[01:14:30]         _9 = (*_3);
[01:14:30]         StorageLive(_10);
[01:14:30]         _10 = (*_6);
[01:14:30]         _0 = Eq(move _9, move _10);
[01:14:30] ... (elided)
[01:14:30]         return;
[01:14:30] ... (elided)
[01:14:30] Actual:
[01:14:30] fn bar() -> bool{
[01:14:30] fn bar() -> bool{
[01:14:30]     let mut _0: bool;
[01:14:30]     scope 1 {
[01:14:30]     scope 2 {
[01:14:30]     scope 2 {
[01:14:30]         let _1: for<'r, 's> fn(&'r i32, &'s i32) -> bool {foo};
[01:14:30]     }
[01:14:30]     let mut _2: for<'r, 's> fn(&'r i32, &'s i32) -> bool {foo};
[01:14:30]     let mut _3: &i32;
[01:14:30]     let mut _4: &i32;
[01:14:30]     let _5: i32;
[01:14:30]     let mut _6: &i32;
[01:14:30]     let mut _7: &i32;
[01:14:30]     let _8: i32;
[01:14:30]     bb0: {                              
[01:14:30]         StorageLive(_1);
[01:14:30]         _1 = const foo;
[01:14:30]         StorageLive(_2);
[01:14:30]         _2 = _1;
[01:14:30]         StorageLive(_3);
[01:14:30]         StorageLive(_4);
[01:14:30]         _4 = &(promoted[1]: i32);
[01:14:30]         Retag(_4);
[01:14:30]         _3 = &(*_4);
[01:14:30]         Retag(_3);
[01:14:30]         StorageLive(_6);
[01:14:30]         StorageLive(_7);
[01:14:30]         _7 = &(promoted[0]: i32);
[01:14:30]         Retag(_7);
[01:14:30]         _6 = &(*_7);
[01:14:30]         Retag(_6);
[01:14:30]         _0 = move _2(move _3, move _6) -> bb1;
[01:14:30]     }
[01:14:30]     bb1: {                              
[01:14:30]         StorageDead(_6);
[01:14:30]         StorageDead(_3);
[01:14:30]         StorageDead(_2);
[01:14:30]         StorageDead(_1);
[01:14:30]         StorageDead(_7);
[01:14:30]         StorageDead(_4);
[01:14:30]         return;
[01:14:30]     bb2: {
[01:14:30]         resume;
[01:14:30]     }
[01:14:30] }', src/tools/compiletest/src/runtest.rs:2952:13
[01:14:30] }', src/tools/compiletest/src/runtest.rs:2952:13
[01:14:30] 
[01:14:30] ---- [mir-opt] mir-opt/inline-trait-method_2.rs stdout ----
[01:14:30] thread '[mir-opt] mir-opt/inline-trait-method_2.rs' panicked at 'Did not find expected line, error: ran out of mir dump to match against
[01:14:30] Expected Line: "    _0 = const X::y(move _2) -> bb1;"
[01:14:30] Test Name: rustc.test2.Inline.after.mir
[01:14:30] ... (elided)
[01:14:30] ... (elided)
[01:14:30] bb0: {
[01:14:30] ... (elided)
[01:14:30] ... (elided)
[01:14:30]     _0 = const X::y(move _2) -> bb1;
[01:14:30] }
[01:14:30] ... (elided)
[01:14:30] Actual:
[01:14:30] fn test2(_1: &dyn X) -> bool{
[01:14:30]     let mut _0: bool;
[01:14:30]     let mut _2: &dyn X;
[01:14:30]     let mut _3: &dyn X;
[01:14:30]     bb0: {                              
[01:14:30]         StorageLive(_2);
[01:14:30]         StorageLive(_3);
[01:14:30]         _3 = &(*_1);
[01:14:30]         _2 = move _3 as &dyn X (Unsize);
[01:14:30]         StorageDead(_3);
[01:14:30]         _0 = const test(move _2) -> bb1;
[01:14:30]     }
[01:14:30]     bb1: {                              
[01:14:30]         StorageDead(_2);
[01:14:30]         return;
[01:14:30]     bb2: {
[01:14:30]         resume;
[01:14:30]     }
[01:14:30] }', src/tools/compiletest/src/runtest.rs:2952:13
---
[01:14:30] test result: FAILED. 35 passed; 3 failed; 0 ignored; 0 measured; 0 filtered out
[01:14:30] 
[01:14:30] 
[01:14:30] 
[01:14:30] command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/compiletest" "--compile-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib" "--run-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "--rustc-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "--src-base" "/checkout/src/test/mir-opt" "--build-base" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/mir-opt" "--stage-id" "stage2-x86_64-unknown-linux-gnu" "--mode" "mir-opt" "--target" "x86_64-unknown-linux-gnu" "--host" "x86_64-unknown-linux-gnu" "--llvm-filecheck" "/usr/lib/llvm-6.0/bin/FileCheck" "--host-rustcflags" "-Crpath -O -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--target-rustcflags" "-Crpath -O -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--docck-python" "/usr/bin/python2.7" "--lldb-python" "/usr/bin/python2.7" "--gdb" "/usr/bin/gdb" "--quiet" "--llvm-version" "6.0.0\n" "--system-llvm" "--cc" "" "--cxx" "" "--cflags" "" "--llvm-components" "" "--llvm-cxxflags" "" "--adb-path" "adb" "--adb-test-dir" "/data/tmp/work" "--android-cross-path" "" "--color" "always"
[01:14:30] 
[01:14:30] 
[01:14:30] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
[01:14:30] Build completed unsuccessfully in 0:11:59
[01:14:30] Build completed unsuccessfully in 0:11:59
[01:14:30] Makefile:48: recipe for target 'check' failed
[01:14:30] make: *** [check] Error 1
The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 2.
travis_time:start:0aac967d
$ date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)
Sat Jan 26 17:15:36 UTC 2019
---
travis_time:end:07bc7418:start=1548522938540120707,finish=1548522938545873180,duration=5752473
travis_fold:end:after_failure.3
travis_fold:start:after_failure.4
travis_time:start:15853b70
$ ln -s . checkout && for CORE in obj/cores/core.*; do EXE=$(echo $CORE | sed 's|obj/cores/core\.[0-9]*\.!checkout!\(.*\)|\1|;y|!|/|'); if [ -f "$EXE" ]; then printf travis_fold":start:crashlog\n\033[31;1m%s\033[0m\n" "$CORE"; gdb --batch -q -c "$CORE" "$EXE" -iex 'set auto-load off' -iex 'dir src/' -iex 'set sysroot .' -ex bt -ex q; echo travis_fold":"end:crashlog; fi; done || true
travis_fold:end:after_failure.4
travis_fold:start:after_failure.5
travis_time:start:2449eb73
travis_time:start:2449eb73
$ cat ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers || true
cat: ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers: No such file or directory
travis_fold:end:after_failure.5
travis_fold:start:after_failure.6
travis_time:start:327aacd3
$ dmesg | grep -i kill

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-6.0 of your PR failed on Travis (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
travis_time:end:23bf3ddb:start=1548606586968328481,finish=1548606666831744968,duration=79863416487
$ git checkout -qf FETCH_HEAD
travis_fold:end:git.checkout

Encrypted environment variables have been removed for security reasons.
See https://docs.travis-ci.com/user/pull-requests/#pull-requests-and-security-restrictions
$ export SCCACHE_BUCKET=rust-lang-ci-sccache2
$ export SCCACHE_REGION=us-west-1
Setting environment variables from .travis.yml
$ export IMAGE=x86_64-gnu-llvm-6.0
---
[01:10:02] running 38 tests
[01:10:06] ERROR 2019-01-27T17:41:21Z: compiletest::runtest: None
[01:10:06] ERROR 2019-01-27T17:41:21Z: compiletest::runtest: None
[01:10:20] thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:495:22
[01:10:20] ...........FF.........................
[01:10:20] 
[01:10:20] ---- [mir-opt] mir-opt/inline-closure-borrows-arg.rs stdout ----
[01:10:20] ---- [mir-opt] mir-opt/inline-closure-borrows-arg.rs stdout ----
[01:10:20] thread '[mir-opt] mir-opt/inline-closure-borrows-arg.rs' panicked at 'Did not find expected line, error: Mismatch in lines
[01:10:20] Current block: None
[01:10:20] Actual Line: "        _0 = const std::ops::Fn::call(move _4, move _5) -> bb1;"
[01:10:20] Expected Line: "    _8 = move (_5.0: &i32);"
[01:10:20] Test Name: rustc.foo.Inline.after.mir
[01:10:20] ... (elided)
[01:10:20] ... (elided)
[01:10:20] bb0: {
[01:10:20] ... (elided)
[01:10:20] ... (elided)
[01:10:20]     _3 = [closure@NodeId(53)];
[01:10:20] ... (elided)
[01:10:20]     _4 = &_3;
[01:10:20] ... (elided)
[01:10:20]     _6 = &(*_2);
[01:10:20] ... (elided)
[01:10:20]     _7 = &(*_2);
[01:10:20]     _5 = (move _6, move _7);
[01:10:20]     _8 = move (_5.0: &i32);
[01:10:20]     _9 = move (_5.1: &i32);
[01:10:20] ... (elided)
[01:10:20]     _0 = (*_8);
[01:10:20] ... (elided)
[01:10:20]     return;
[01:10:20] }
[01:10:20] ... (elided)
[01:10:20] Actual:
[01:10:20] fn foo(_1: T, _2: &i32) -> i32{
[01:10:20]     let mut _0: i32;
[01:10:20]     scope 1 {
[01:10:20]     scope 2 {
[01:10:20]     scope 2 {
[01:10:20]         let _3: [closure@NodeId(53)];
[01:10:20]     }
[01:10:20]     let mut _4: &[closure@NodeId(53)];
[01:10:20]     let mut _5: (&i32, &i32);
[01:10:20]     let mut _6: &i32;
[01:10:20]     let mut _7: &i32;
[01:10:20]     bb0: {                              
[01:10:20]         StorageLive(_3);
[01:10:20]         _3 = [closure@NodeId(53)];
[01:10:20]         StorageLive(_4);
[01:10:20]         _4 = &_3;
[01:10:20]         StorageLive(_5);
[01:10:20]         StorageLive(_6);
[01:10:20]         _6 = &(*_2);
[01:10:20]         StorageLive(_7);
[01:10:20]         _7 = &(*_2);
[01:10:20]         _5 = (move _6, move _7);
[01:10:20]         _0 = const std::ops::Fn::call(move _4, move _5) -> bb1;
[01:10:20]     }
[01:10:20]     bb1: {                              
[01:10:20]         StorageDead(_5);
[01:10:20]         StorageDead(_7);
[01:10:20]         StorageDead(_6);
[01:10:20]         StorageDead(_4);
[01:10:20]         StorageDead(_3);
[01:10:20]         return;
[01:10:20]     bb2: {
[01:10:20]         resume;
[01:10:20]     }
[01:10:20] }', src/tools/compiletest/src/runtest.rs:2953:13
[01:10:20] }', src/tools/compiletest/src/runtest.rs:2953:13
[01:10:20] note: Run with `RUST_BACKTRACE=1` for a backtrace.
[01:10:20] 
[01:10:20] ---- [mir-opt] mir-opt/inline-closure.rs stdout ----
[01:10:20] thread '[mir-opt] mir-opt/inline-closure.rs' panicked at 'Did not find expected line, error: Mismatch in lines
[01:10:20] Current block: None
[01:10:20] Actual Line: "        _0 = const std::ops::Fn::call(move _4, move _5) -> bb1;"
[01:10:20] Expected Line: "    _8 = move (_5.0: i32);"
[01:10:20] Test Name: rustc.foo.Inline.after.mir
[01:10:20] ... (elided)
[01:10:20] ... (elided)
[01:10:20] bb0: {
[01:10:20] ... (elided)
[01:10:20] ... (elided)
[01:10:20]     _3 = [closure@NodeId(39)];
[01:10:20] ... (elided)
[01:10:20]     _4 = &_3;
[01:10:20] ... (elided)
[01:10:20]     _6 = _2;
[01:10:20] ... (elided)
[01:10:20]     _7 = _2;
[01:10:20]     _5 = (move _6, move _7);
[01:10:20]     _8 = move (_5.0: i32);
[01:10:20]     _9 = move (_5.1: i32);
[01:10:20]     _0 = _8;
[01:10:20] ... (elided)
[01:10:20]     return;
[01:10:20] }
[01:10:20] ... (elided)
[01:10:20] Actual:
[01:10:20] fn foo(_1: T, _2: i32) -> i32{
[01:10:20]     let mut _0: i32;
[01:10:20]     scope 1 {
[01:10:20]     scope 2 {
[01:10:20]     scope 2 {
[01:10:20]         let _3: [closure@NodeId(39)];
[01:10:20]     }
[01:10:20]     let mut _4: &[closure@NodeId(39)];
[01:10:20]     let mut _5: (i32, i32);
[01:10:20]     let mut _6: i32;
[01:10:20]     let mut _7: i32;
[01:10:20]     bb0: {                              
[01:10:20]         StorageLive(_3);
[01:10:20]         _3 = [closure@NodeId(39)];
[01:10:20]         StorageLive(_4);
[01:10:20]         _4 = &_3;
[01:10:20]         StorageLive(_5);
[01:10:20]         StorageLive(_6);
[01:10:20]         _6 = _2;
[01:10:20]         StorageLive(_7);
[01:10:20]         _7 = _2;
[01:10:20]         _5 = (move _6, move _7);
[01:10:20]         _0 = const std::ops::Fn::call(move _4, move _5) -> bb1;
[01:10:20]     }
[01:10:20]     bb1: {                              
[01:10:20]         StorageDead(_5);
[01:10:20]         StorageDead(_7);
[01:10:20]         StorageDead(_6);
[01:10:20]         StorageDead(_4);
[01:10:20]         StorageDead(_3);
[01:10:20]         return;
[01:10:20]     bb2: {
[01:10:20]         resume;
[01:10:20]     }
[01:10:20] }', src/tools/compiletest/src/runtest.rs:2953:13
---
[01:10:20] test result: FAILED. 36 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out
[01:10:20] 
[01:10:20] 
[01:10:20] 
[01:10:20] command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/compiletest" "--compile-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib" "--run-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "--rustc-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "--src-base" "/checkout/src/test/mir-opt" "--build-base" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/mir-opt" "--stage-id" "stage2-x86_64-unknown-linux-gnu" "--mode" "mir-opt" "--target" "x86_64-unknown-linux-gnu" "--host" "x86_64-unknown-linux-gnu" "--llvm-filecheck" "/usr/lib/llvm-6.0/bin/FileCheck" "--host-rustcflags" "-Crpath -O -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--target-rustcflags" "-Crpath -O -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--docck-python" "/usr/bin/python2.7" "--lldb-python" "/usr/bin/python2.7" "--gdb" "/usr/bin/gdb" "--quiet" "--llvm-version" "6.0.0\n" "--system-llvm" "--cc" "" "--cxx" "" "--cflags" "" "--llvm-components" "" "--llvm-cxxflags" "" "--adb-path" "adb" "--adb-test-dir" "/data/tmp/work" "--android-cross-path" "" "--color" "always"
[01:10:20] 
[01:10:20] 
[01:10:20] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
[01:10:20] Build completed unsuccessfully in 0:10:59
[01:10:20] Build completed unsuccessfully in 0:10:59
[01:10:20] make: *** [check] Error 1
[01:10:20] Makefile:48: recipe for target 'check' failed
The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 2.
travis_time:start:23782b9c
$ date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)
Sun Jan 27 17:41:36 UTC 2019
---
travis_time:end:00034608:start=1548610897979051224,finish=1548610897983303605,duration=4252381
travis_fold:end:after_failure.3
travis_fold:start:after_failure.4
travis_time:start:01f910f4
$ ln -s . checkout && for CORE in obj/cores/core.*; do EXE=$(echo $CORE | sed 's|obj/cores/core\.[0-9]*\.!checkout!\(.*\)|\1|;y|!|/|'); if [ -f "$EXE" ]; then printf travis_fold":start:crashlog\n\033[31;1m%s\033[0m\n" "$CORE"; gdb --batch -q -c "$CORE" "$EXE" -iex 'set auto-load off' -iex 'dir src/' -iex 'set sysroot .' -ex bt -ex q; echo travis_fold":"end:crashlog; fi; done || true
travis_fold:end:after_failure.4
travis_fold:start:after_failure.5
travis_time:start:1d0c0070
travis_time:start:1d0c0070
$ cat ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers || true
cat: ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers: No such file or directory
travis_fold:end:after_failure.5
travis_fold:start:after_failure.6
travis_time:start:08c08b02
$ dmesg | grep -i kill

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@Zoxc Zoxc force-pushed the error-on-cycle branch 2 times, most recently from 531c85a to e139e86 Compare January 27, 2019 18:28
@bors
Copy link
Contributor

bors commented Jan 29, 2019

☔ The latest upstream changes (presumably #57948) made this pull request unmergeable. Please resolve the merge conflicts.

@Dylan-DPC-zz
Copy link

ping from triage @Zoxc you have conflicts and failing tests to resolve

@rust-highfive
Copy link
Collaborator

The job mingw-check of your PR failed on Travis (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
travis_time:end:000b46d4:start=1549932841453215883,finish=1549932843084944192,duration=1631728309
$ git checkout -qf FETCH_HEAD
travis_fold:end:git.checkout

Encrypted environment variables have been removed for security reasons.
See https://docs.travis-ci.com/user/pull-requests/#pull-requests-and-security-restrictions
$ export SCCACHE_BUCKET=rust-lang-ci-sccache2
$ export SCCACHE_REGION=us-west-1
Setting environment variables from .travis.yml
$ export IMAGE=mingw-check
---
    73% |███████████████████████▍        | 51kB 45.7MB/s eta 0:00:01
    87% |████████████████████████████    | 61kB 45.8MB/s eta 0:00:01
    100% |████████████████████████████████| 71kB 26.2MB/s 
Collecting botocore==1.12.92 (from awscli)
  Downloading https://files.pythonhosted.org/packages/a6/ec/e68d5d9b5eaa53d3552de0638231a8678c327737f4fc9fa62733483260fc/botocore-1.12.92-py2.py3-none-any.whl (5.3MB)
    0% |▏                               | 20kB 23.7MB/s eta 0:00:01
    0% |▏                               | 30kB 28.6MB/s eta 0:00:01
    0% |▎                               | 40kB 30.8MB/s eta 0:00:01
    0% |▎                               | 51kB 31.8MB/s eta 0:00:01
---
[00:04:37]     Checking arena v0.0.0 (/checkout/src/libarena)
[00:04:37]     Checking syntax_pos v0.0.0 (/checkout/src/libsyntax_pos)
[00:04:38]     Checking rustc_errors v0.0.0 (/checkout/src/librustc_errors)
[00:04:52]     Checking syntax_ext v0.0.0 (/checkout/src/libsyntax_ext)
[00:04:57] error: unused import: `rustc_data_structures::cold_path`
[00:04:57]   --> src/librustc/ty/query/plumbing.rs:23:5
[00:04:57] 23 | use rustc_data_structures::cold_path;
[00:04:57]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[00:04:57]    |
[00:04:57]    = note: `-D unused-imports` implied by `-D warnings`
[00:04:57]    = note: `-D unused-imports` implied by `-D warnings`
[00:04:57] 
[00:05:16] error: aborting due to previous error
[00:05:16] 
[00:05:16] error: Could not compile `rustc`.
[00:05:16] 
[00:05:16] To learn more, run the command again with --verbose.
[00:05:16] command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "check" "--target" "x86_64-unknown-linux-gnu" "-j" "4" "--release" "--color" "always" "--features" "" "--manifest-path" "/checkout/src/rustc/Cargo.toml" "--message-format" "json"
[00:05:16] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap check
[00:05:16] Build completed unsuccessfully in 0:03:12
travis_time:end:0df3fdb5:start=1549932854158230584,finish=1549933171447112833,duration=317288882249
The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 1.
---
travis_time:end:10295d09:start=1549933172281680011,finish=1549933172288237714,duration=6557703
travis_fold:end:after_failure.3
travis_fold:start:after_failure.4
travis_time:start:3664f439
$ ln -s . checkout && for CORE in obj/cores/core.*; do EXE=$(echo $CORE | sed 's|obj/cores/core\.[0-9]*\.!checkout!\(.*\)|\1|;y|!|/|'); if [ -f "$EXE" ]; then printf travis_fold":start:crashlog\n\033[31;1m%s\033[0m\n" "$CORE"; gdb --batch -q -c "$CORE" "$EXE" -iex 'set auto-load off' -iex 'dir src/' -iex 'set sysroot .' -ex bt -ex q; echo travis_fold":"end:crashlog; fi; done || true
travis_fold:end:after_failure.4
travis_fold:start:after_failure.5
travis_time:start:084f7998
travis_time:start:084f7998
$ cat ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers || true
cat: ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers: No such file or directory
travis_fold:end:after_failure.5
travis_fold:start:after_failure.6
travis_time:start:0932a9de
$ dmesg | grep -i kill

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@michaelwoerister
Copy link
Member

Sorry, I'm behind on reviewing this...

@bors
Copy link
Contributor

bors commented Feb 12, 2019

☔ The latest upstream changes (presumably #58341) made this pull request unmergeable. Please resolve the merge conflicts.

Copy link
Member

@michaelwoerister michaelwoerister left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The PR looks good. @rust-lang/compiler who is looking into MIR inlining at the moment? There are some changes in here that might affect it (but I assume that the current solution is temporary anyway?).

@@ -43,4 +43,8 @@ impl<T> Steal<T> {
let value = value_ref.take();
value.expect("attempt to read from stolen value")
}

pub fn stolen(&self) -> bool {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this used anywhere? I don't see it anywhere else in the diff.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It was used in a previous version. I'll remove it.

@wesleywiser
Copy link
Member

@michaelwoerister I've played around with it a bit in the past. FYI, there's some more context for this PR here https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/always.20error.20on.20query.20cycles

@michaelwoerister
Copy link
Member

OK, r=me with the nits addressed.

@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-6.0 of your PR failed on Travis (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
travis_time:end:02301d64:start=1550060180614110827,finish=1550060181503423529,duration=889312702
$ git checkout -qf FETCH_HEAD
travis_fold:end:git.checkout

Encrypted environment variables have been removed for security reasons.
See https://docs.travis-ci.com/user/pull-requests/#pull-requests-and-security-restrictions
$ export SCCACHE_BUCKET=rust-lang-ci-sccache2
$ export SCCACHE_REGION=us-west-1
Setting environment variables from .travis.yml
$ export IMAGE=x86_64-gnu-llvm-6.0
---
travis_time:end:05b5cc4c:start=1550060715782858846,finish=1550060715787704548,duration=4845702
travis_fold:end:after_failure.3
travis_fold:start:after_failure.4
travis_time:start:0f6300e2
$ ln -s . checkout && for CORE in obj/cores/core.*; do EXE=$(echo $CORE | sed 's|obj/cores/core\.[0-9]*\.!checkout!\(.*\)|\1|;y|!|/|'); if [ -f "$EXE" ]; then printf travis_fold":start:crashlog\n\033[31;1m%s\033[0m\n" "$CORE"; gdb --batch -q -c "$CORE" "$EXE" -iex 'set auto-load off' -iex 'dir src/' -iex 'set sysroot .' -ex bt -ex q; echo travis_fold":"end:crashlog; fi; done || true
travis_fold:end:after_failure.4
travis_fold:start:after_failure.5
travis_time:start:08d098b8
travis_time:start:08d098b8
$ cat ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers || true
cat: ./obj/build/x86_64-unknown-linux-gnu/native/asa

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

let callee_mir = if let Some(callee_node_id) = callee_node_id {
// Avoid a cycle here by only using `optimized_mir` only if we have
// a lower node id than the callee. This ensures that the callee will
// not inline us. This trick only works without incremental compilation.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why does this only work without incremental? Even if the order of evaluation is the other way around, the node id comparison will impose a strict order. The actual optimizations done might vary between incremental compilations, but that should be sound.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We do not want optimizations to vary though.

@bors
Copy link
Contributor

bors commented Feb 14, 2019

☔ The latest upstream changes (presumably #58432) made this pull request unmergeable. Please resolve the merge conflicts.

@Zoxc
Copy link
Contributor Author

Zoxc commented Feb 14, 2019

@bors r=michaelwoerister

@bors bors added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Feb 14, 2019
@Zoxc
Copy link
Contributor Author

Zoxc commented Feb 15, 2019

@bors r=michaelwoerister

@bors
Copy link
Contributor

bors commented Feb 15, 2019

📌 Commit 82d7e33 has been approved by michaelwoerister

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Feb 15, 2019
@bors
Copy link
Contributor

bors commented Feb 15, 2019

⌛ Testing commit 82d7e33 with merge 50e4593fa38407ee1aa95857ce7527d64daf6d2e...

@bors
Copy link
Contributor

bors commented Feb 15, 2019

💔 Test failed - checks-travis

@rust-highfive
Copy link
Collaborator

Your PR failed on Travis (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@bors bors added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Feb 15, 2019
@pietroalbini
Copy link
Member

@bors retry -- apparently we can't clone the repo anymore on macOS

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Feb 15, 2019
@bors
Copy link
Contributor

bors commented Feb 15, 2019

⌛ Testing commit 82d7e33 with merge eac0908...

bors added a commit that referenced this pull request Feb 15, 2019
@bors
Copy link
Contributor

bors commented Feb 16, 2019

☀️ Test successful - checks-travis, status-appveyor
Approved by: michaelwoerister
Pushing eac0908 to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Feb 16, 2019
@bors bors merged commit 82d7e33 into rust-lang:master Feb 16, 2019
@rust-highfive
Copy link
Collaborator

Your PR failed on Travis (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
travis_fold:end:services

travis_fold:start:git.checkout
travis_time:start:01fd8bc0
$ git clone --depth=2 --branch=master https://github.com/rust-lang/rust.git rust-lang/rust
---
  fi
travis_time:end:145c6d9e:start=1550279306520791225,finish=1550279306527296005,duration=6504780
travis_fold:end:before_script.3
travis_time:start:29e72fa0
$ MESSAGE_FILE=$(mktemp -t msg.XXXXXX); . src/ci/docker/x86_64-gnu-tools/repo.sh; commit_toolstate_change "$MESSAGE_FILE" "$TRAVIS_BUILD_DIR/src/tools/publish_toolstate.py" "$(git rev-parse HEAD)" "$(git log --format=%s -n1 HEAD)" "$MESSAGE_FILE" "$TOOLSTATE_REPO_ACCESS_TOKEN";

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@Zoxc Zoxc deleted the error-on-cycle branch February 16, 2019 02:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
merged-by-bors This PR was explicitly merged by bors. S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants