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

Change clippy's symbol interning strategy to be reentrant #60907

Closed
wants to merge 7 commits into from

Conversation

oli-obk
Copy link
Contributor

@oli-obk oli-obk commented May 17, 2019

and thus fix rls

fixes #60893
fixes #60768

r? @Manishearth @nnethercote

@rust-highfive
Copy link
Collaborator

⚠️ Warning ⚠️

  • These commits modify submodules.

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label May 17, 2019
@rust-highfive

This comment has been minimized.

@petrochenkov
Copy link
Contributor

r? @Zoxc

}
}
}

pub fn with_globals<F, R>(f: F) -> R
pub fn with_globals<F, R>(driver_symbols: &[&str], f: F) -> R
Copy link
Contributor

Choose a reason for hiding this comment

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

with_globals could probably keep its interface and delegate to a new with_globals_xxx function taking &[&str].

Too bad Rust still doesn't have default fn parameters to write fn foo(driver_symbols: &[&str] = &[]).

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I was considering that, but it seemed too error prone (since it's too easy to forget to do somewhere).

driver_symbols: &[&str],
cfgspecs: Vec<String>,
) -> FxHashSet<(String, Option<String>)> {
syntax::with_globals(driver_symbols, move || {
Copy link
Contributor

Choose a reason for hiding this comment

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

I'm not sure this one needs the extra symbols.
It's a "leaf" function that shouldn't delegate to any tool-specific functionality.

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 should not need any symbols at all I believe. Would you mind if I did that change in a separate PR?

Copy link
Contributor

Choose a reason for hiding this comment

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

It needs symbols because it parses paths and therefore needs to use at least self/super/etc.
I guess it's ok to leave this as is because I'm not entirely sure that parsing cannot be intercepted by a tool now or in the future.

@rust-highfive

This comment has been minimized.

@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:13b2350a:start=1558090773250171555,finish=1558090774033395656,duration=783224101
$ 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
$ export GCP_CACHE_BUCKET=rust-lang-ci-cache
$ export AWS_ACCESS_KEY_ID=AKIA46X5W6CZEJZ6XT55
---
travis_time:start:test_codegen
Check compiletest suite=codegen mode=codegen (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
[01:23:49] 
[01:23:49] running 143 tests
[01:23:52] i..iii.....i.ii.iiii.....i......................i..i.................i.....i..........ii.i..i..i.ii. 100/143
[01:23:54] test result: ok. 113 passed; 0 failed; 30 ignored; 0 measured; 0 filtered out
[01:23:54] 
[01:23:54]  finished in 4.794
[01:23:54] travis_fold:end:test_codegen
---
travis_time:start:test_assembly
Check compiletest suite=assembly mode=assembly (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
[01:23:56] 
[01:23:56] running 9 tests
[01:23:56] iiiiiiiii
[01:23:56] 
[01:23:56]  finished in 0.155
[01:23:56] travis_fold:end:test_assembly

---
travis_time:start:test_debuginfo
Check compiletest suite=debuginfo mode=debuginfo-both (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
[01:24:12] 
[01:24:12] running 122 tests
[01:24:38] .iiiii...i.....i..i...i..i.i.i..i.ii..i.i.....i..i....i..........iiii..........i...ii...i.......ii.i 100/122
[01:24:43] .i.i......iii.i.....ii
[01:24:43] 
[01:24:43]  finished in 31.171
[01:24:43] travis_fold:end:test_debuginfo

---
[01:40:53]      |
[01:40:53] 1923 | / pub fn build_session_options_and_crate_config(
[01:40:53] 1924 | |     driver_symbols: &[&str],
[01:40:53] 1925 | |     matches: &getopts::Matches,
[01:40:53] 1926 | | ) -> (Options, FxHashSet<(String, Option<String>)>) {
[01:40:53] 2439 | |     )
[01:40:53] 2440 | | }
[01:40:53]      | |_- defined here
[01:40:53] ...
[01:40:53] ...
[01:40:53] 2748 |               let (sessopts, cfg) = build_session_options_and_crate_config(matches);
[01:40:53] 
[01:40:53] error[E0061]: this function takes 2 parameters but 1 parameter was supplied
[01:40:53]     --> src/librustc/session/config.rs:2767:35
[01:40:53]      |
[01:40:53]      |
[01:40:53] 1923 | / pub fn build_session_options_and_crate_config(
[01:40:53] 1924 | |     driver_symbols: &[&str],
[01:40:53] 1925 | |     matches: &getopts::Matches,
[01:40:53] 1926 | | ) -> (Options, FxHashSet<(String, Option<String>)>) {
[01:40:53] 2439 | |     )
[01:40:53] 2440 | | }
[01:40:53]      | |_- defined here
[01:40:53] ...
[01:40:53] ...
[01:40:53] 2767 |               let (sessopts, cfg) = build_session_options_and_crate_config(matches);
[01:40:53] 
[01:40:53] error[E0061]: this function takes 2 parameters but 1 parameter was supplied
[01:40:53]     --> src/librustc/session/config.rs:2781:33
[01:40:53]      |
[01:40:53]      |
[01:40:53] 1923 | / pub fn build_session_options_and_crate_config(
[01:40:53] 1924 | |     driver_symbols: &[&str],
[01:40:53] 1925 | |     matches: &getopts::Matches,
[01:40:53] 1926 | | ) -> (Options, FxHashSet<(String, Option<String>)>) {
[01:40:53] 2439 | |     )
[01:40:53] 2440 | | }
[01:40:53]      | |_- defined here
[01:40:53] ...
[01:40:53] ...
[01:40:53] 2781 |               let (sessopts, _) = build_session_options_and_crate_config(&matches);
[01:40:53] 
[01:40:53] error[E0061]: this function takes 2 parameters but 1 parameter was supplied
[01:40:53]     --> src/librustc/session/config.rs:2791:33
[01:40:53]      |
[01:40:53]      |
[01:40:53] 1923 | / pub fn build_session_options_and_crate_config(
[01:40:53] 1924 | |     driver_symbols: &[&str],
[01:40:53] 1925 | |     matches: &getopts::Matches,
[01:40:53] 1926 | | ) -> (Options, FxHashSet<(String, Option<String>)>) {
[01:40:53] 2439 | |     )
[01:40:53] 2440 | | }
[01:40:53]      | |_- defined here
[01:40:53] ...
[01:40:53] ...
[01:40:53] 2791 |               let (sessopts, _) = build_session_options_and_crate_config(&matches);
[01:40:53] 
[01:40:53] error[E0061]: this function takes 2 parameters but 1 parameter was supplied
[01:40:53]     --> src/librustc/session/config.rs:2799:33
[01:40:53]      |
[01:40:53]      |
[01:40:53] 1923 | / pub fn build_session_options_and_crate_config(
[01:40:53] 1924 | |     driver_symbols: &[&str],
[01:40:53] 1925 | |     matches: &getopts::Matches,
[01:40:53] 1926 | | ) -> (Options, FxHashSet<(String, Option<String>)>) {
[01:40:53] 2439 | |     )
[01:40:53] 2440 | | }
[01:40:53]      | |_- defined here
[01:40:53] ...
[01:40:53] ...
[01:40:53] 2799 |               let (sessopts, _) = build_session_options_and_crate_config(&matches);
[01:40:53] 
[01:40:53] error[E0061]: this function takes 2 parameters but 1 parameter was supplied
[01:40:53]     --> src/librustc/session/config.rs:3397:29
[01:40:53]      |
[01:40:53]      |
[01:40:53] 1923 | / pub fn build_session_options_and_crate_config(
[01:40:53] 1924 | |     driver_symbols: &[&str],
[01:40:53] 1925 | |     matches: &getopts::Matches,
[01:40:53] 1926 | | ) -> (Options, FxHashSet<(String, Option<String>)>) {
[01:40:53] 2439 | |     )
[01:40:53] 2440 | | }
[01:40:53]      | |_- defined here
[01:40:53] ...
[01:40:53] ...
[01:40:53] 3397 |           let (sessopts, _) = build_session_options_and_crate_config(&matches);
[01:40:53] 
[01:41:02] error: aborting due to 6 previous errors
[01:41:02] 
[01:41:02] For more information about this error, try `rustc --explain E0061`.
[01:41:02] For more information about this error, try `rustc --explain E0061`.
[01:41:03] error: Could not compile `rustc`.
[01:41:03] 
[01:41:03] To learn more, run the command again with --verbose.
[01:41:03] 
[01:41:03] 
[01:41:03] command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "test" "--target" "x86_64-unknown-linux-gnu" "-j" "4" "--release" "--locked" "--color" "always" "--features" "" "--manifest-path" "/checkout/src/rustc/Cargo.toml" "-p" "rustc" "--" "--quiet"
[01:41:03] 
[01:41:03] 
[01:41:03] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
[01:41:03] Build completed unsuccessfully in 0:29:29
[01:41:03] Build completed unsuccessfully in 0:29:29
[01:41:03] make: *** [check] Error 1
[01:41:03] Makefile:48: recipe for target 'check' failed
The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 2.
travis_time:start:095585c4
$ date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)
Fri May 17 12:40:48 UTC 2019
---
travis_time:end:12ae583c:start=1558096850226829366,finish=1558096850232936731,duration=6107365
travis_fold:end:after_failure.3
travis_fold:start:after_failure.4
travis_time:start:03735b10
$ 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:2300c3a1
travis_time:start:2300c3a1
$ 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:1f139e80
$ 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)

Copy link
Member

@Manishearth Manishearth left a comment

Choose a reason for hiding this comment

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

Looks okay, not happy that this affects the signature everywhere, but oh well can't have everything. I think we should land this ASAP even if we have follow-up questions.

@Zoxc
Copy link
Contributor

Zoxc commented May 17, 2019

It seems like a really bad and ugly idea to have 2 lists of initial symbols. Why does clippy need this?

@Manishearth
Copy link
Member

We do lots of symbol lookups, e.g. checking paths.

@Manishearth
Copy link
Member

I have some changes planned that will drastically reduce the number of these that Clippy needs, by virtue of a dedicated diagnostic item registry in rustc (like lang items but weaker), but we'll still need some of these.

Though once clippy is only using a small number of these we can reevaluate how these get stored in rustc.

Right now we need this to fix RLS for the beta.

@petrochenkov
Copy link
Contributor

The largest mistake here was doing rust-lang/rust-clippy@b2dbda4 in a same PR with rust version update, especially before beta.

With rustc interfaces changing from check_name(name: &str) to check_name(name: Symbol) the safe fix was to change check_name("foo") to check_name(Symbol::intern("foo")), rather than invent a new pre-interning system with lazy statics.

@Zoxc
Copy link
Contributor

Zoxc commented May 17, 2019

Why not use a lazy_static to initialize clippy specific symbols or use a struct with symbols in clippy's global state?

@Manishearth
Copy link
Member

That's what we did, it's unsound in multithreaded environments like RLS.

(Rust's Symbol API is unsound, that is, Clippy didn't use unsafe code here)

@oli-obk
Copy link
Contributor Author

oli-obk commented May 17, 2019

The largest mistake here was doing rust-lang/rust-clippy@b2dbda4 in a same PR with rust version update, especially before beta.

Yea, I thought I was being smart.

I can definitely just fix clippy by essentially reverting all that and using Symbol::intern("foo") if preferred.

@Zoxc
Copy link
Contributor

Zoxc commented May 17, 2019

If clippy doesn't currently have a way to store global state, I'd rather either 1) use Symbol::intern or 2) add clippy symbols to symbol.rs with comments indicating that they're only there because of clippy and then find a way for clippy to have global state.

@Manishearth
Copy link
Member

I strongly feel that we should land this first since everything is ready to go for the beta.

The diagnostic item registry will fix most of the symbols we need, and we can build a good focused system for the rest.

@petrochenkov
Copy link
Contributor

(If this ends up as a temporary solution for beta only, then could you please implement https://github.com/rust-lang/rust/pull/60907/files#r285057461 and squash to reduce the churn.)

@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:098e50e3:start=1558110710712528390,finish=1558110796840762463,duration=86128234073
$ 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
$ export GCP_CACHE_BUCKET=rust-lang-ci-cache
$ export AWS_ACCESS_KEY_ID=AKIA46X5W6CZEJZ6XT55
---
travis_time:start:test_codegen
Check compiletest suite=codegen mode=codegen (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
[01:19:34] 
[01:19:34] running 143 tests
[01:19:37] i..iii.....iii..iiii.....i......................i..i.................i......i.........ii.i..i..i.ii. 100/143
[01:19:39] test result: ok. 113 passed; 0 failed; 30 ignored; 0 measured; 0 filtered out
[01:19:39] 
[01:19:39]  finished in 4.653
[01:19:39] travis_fold:end:test_codegen
---
travis_time:start:test_assembly
Check compiletest suite=assembly mode=assembly (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
[01:19:41] 
[01:19:41] running 9 tests
[01:19:41] iiiiiiiii
[01:19:41] 
[01:19:41]  finished in 0.149
[01:19:41] travis_fold:end:test_assembly

---
travis_time:start:test_debuginfo
Check compiletest suite=debuginfo mode=debuginfo-both (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
[01:19:57] 
[01:19:57] running 122 tests
[01:20:21] .iiiii...i.....i..i...i..i.i.i..i.ii..i.i.....i..i....i..........iiii..........i...ii...i.......ii.i 100/122
[01:20:26] .i.i......iii.i.....ii
[01:20:26] 
[01:20:26]  finished in 29.869
[01:20:26] travis_fold:end:test_debuginfo

---
[01:44:06] 
[01:44:06] running 26 tests
[01:44:19] thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:512:22
[01:44:19] note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
[01:44:19] ............F........F....
[01:44:19] 
[01:44:19] ---- [ui] rustdoc-ui/failed-doctest-output.rs stdout ----
[01:44:19] diff of stdout:
[01:44:19] 
[01:44:19] 
[01:44:19] 15 error: aborting due to previous error
[01:44:19] 16 
[01:44:19] 17 For more information about this error, try `rustc --explain E0425`.
[01:44:19] - thread '$DIR/failed-doctest-output.rs - OtherStruct (line 17)' panicked at 'couldn't compile the test', src/librustdoc/test.rs:319:13
[01:44:19] + thread '$DIR/failed-doctest-output.rs - OtherStruct (line 17)' panicked at 'couldn't compile the test', src/librustdoc/test.rs:321:13
[01:44:19] 20 
[01:44:19] 20 
[01:44:19] 21 ---- $DIR/failed-doctest-output.rs - SomeStruct (line 11) stdout ----
[01:44:19] 
[01:44:19] 24 thread 'main' panicked at 'oh no', $DIR/failed-doctest-output.rs:3:1
[01:44:19] 26 
[01:44:19] - ', src/librustdoc/test.rs:341:17
[01:44:19] + ', src/librustdoc/test.rs:343:17
[01:44:19] 28 
[01:44:19] 28 
[01:44:19] 29 
[01:44:19] 30 failures:
[01:44:19] 
[01:44:19] 
[01:44:19] The actual stdout differed from the expected stdout.
[01:44:19] Actual stdout saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc-ui/failed-doctest-output/failed-doctest-output.stdout
[01:44:19] To update references, rerun the tests and pass the `--bless` flag
[01:44:19] To only update this specific test, also pass `--test-args failed-doctest-output.rs`
[01:44:19] error: 1 errors occurred comparing output.
[01:44:19] status: exit code: 101
[01:44:19] status: exit code: 101
[01:44:19] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" "/checkout/src/test/rustdoc-ui/failed-doctest-output.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc-ui/failed-doctest-output" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--test" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc-ui/failed-doctest-output/auxiliary"
[01:44:19] ------------------------------------------
[01:44:19] 
[01:44:19] running 2 tests
[01:44:19] test /checkout/src/test/rustdoc-ui/failed-doctest-output.rs - OtherStruct (line 17) ... FAILED
[01:44:19] test /checkout/src/test/rustdoc-ui/failed-doctest-output.rs - OtherStruct (line 17) ... FAILED
[01:44:19] test /checkout/src/test/rustdoc-ui/failed-doctest-output.rs - SomeStruct (line 11) ... FAILED
[01:44:19] failures:
[01:44:19] 
[01:44:19] ---- /checkout/src/test/rustdoc-ui/failed-doctest-output.rs - OtherStruct (line 17) stdout ----
[01:44:19] error[E0425]: cannot find value `no` in this scope
---
[01:44:19] For more information about this error, try `rustc --explain E0425`.
[01:44:19] thread '/checkout/src/test/rustdoc-ui/failed-doctest-output.rs - OtherStruct (line 17)' panicked at 'couldn't compile the test', src/librustdoc/test.rs:321:13
[01:44:19] note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
[01:44:19] 
[01:44:19] ---- /checkout/src/test/rustdoc-ui/failed-doctest-output.rs - SomeStruct (line 11) stdout ----
[01:44:19] thread '/checkout/src/test/rustdoc-ui/failed-doctest-output.rs - SomeStruct (line 11)' panicked at 'test executable failed:
[01:44:19] 
[01:44:19] thread 'main' panicked at 'oh no', /checkout/src/test/rustdoc-ui/failed-doctest-output.rs:3:1
[01:44:19] 
[01:44:19] ', src/librustdoc/test.rs:343:17
[01:44:19] 
[01:44:19] 
[01:44:19] 
[01:44:19] failures:
[01:44:19]     /checkout/src/test/rustdoc-ui/failed-doctest-output.rs - OtherStruct (line 17)
[01:44:19]     /checkout/src/test/rustdoc-ui/failed-doctest-output.rs - SomeStruct (line 11)
[01:44:19] test result: FAILED. 0 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out
[01:44:19] 
[01:44:19] 
[01:44:19] ------------------------------------------
---
[01:44:19] 
[01:44:19] 13 
[01:44:19] 14 error: aborting due to previous error
[01:44:19] 15 
[01:44:19] - thread '$DIR/unparseable-doc-test.rs - foo (line 6)' panicked at 'couldn't compile the test', src/librustdoc/test.rs:319:13
[01:44:19] + thread '$DIR/unparseable-doc-test.rs - foo (line 6)' panicked at 'couldn't compile the test', src/librustdoc/test.rs:321:13
[01:44:19] 18 
[01:44:19] 19 
[01:44:19] 
[01:44:19] 
[01:44:19] 
[01:44:19] The actual stdout differed from the expected stdout.
[01:44:19] Actual stdout saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc-ui/unparseable-doc-test/unparseable-doc-test.stdout
[01:44:19] To update references, rerun the tests and pass the `--bless` flag
[01:44:19] To only update this specific test, also pass `--test-args unparseable-doc-test.rs`
[01:44:19] error: 1 errors occurred comparing output.
[01:44:19] status: exit code: 101
[01:44:19] status: exit code: 101
[01:44:19] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" "/checkout/src/test/rustdoc-ui/unparseable-doc-test.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc-ui/unparseable-doc-test" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--test" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc-ui/unparseable-doc-test/auxiliary"
[01:44:19] ------------------------------------------
[01:44:19] 
[01:44:19] running 1 test
[01:44:19] test /checkout/src/test/rustdoc-ui/unparseable-doc-test.rs - foo (line 6) ... FAILED
---
[01:44:19] test result: FAILED. 24 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out
[01:44:19] 
[01:44:19] 
[01:44:19] 
[01:44:19] 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" "--rustdoc-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" "--src-base" "/checkout/src/test/rustdoc-ui" "--build-base" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc-ui" "--stage-id" "stage2-x86_64-unknown-linux-gnu" "--mode" "ui" "--target" "x86_64-unknown-linux-gnu" "--host" "x86_64-unknown-linux-gnu" "--llvm-filecheck" "/usr/lib/llvm-6.0/bin/FileCheck" "--host-rustcflags" "-Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--target-rustcflags" "-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:44:19] 
[01:44:19] 
[01:44:19] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
[01:44:19] Build completed unsuccessfully in 0:36:34
[01:44:19] Build completed unsuccessfully in 0:36:34
[01:44:19] make: *** [check] Error 1
[01:44:19] Makefile:48: recipe for target 'check' failed
The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 2.
travis_time:start:11f4675e
$ date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)
Fri May 17 18:17:45 UTC 2019
---
travis_time:end:00844f72:start=1558117067432131979,finish=1558117067493213399,duration=61081420
travis_fold:end:after_failure.4
travis_fold:start:after_failure.5
travis_time:start:01203c3c
$ 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:2c87769a
$ 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)

@bors
Copy link
Contributor

bors commented May 18, 2019

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

@oli-obk
Copy link
Contributor Author

oli-obk commented May 18, 2019

I changed clippy to use just-in-time-interning

@oli-obk oli-obk closed this May 18, 2019
@oli-obk oli-obk deleted the clippy branch May 19, 2019 08:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-review Status: Awaiting review from the assignee but also interested parties.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

rls no longer builds after rust-lang/rust#60874 rls no longer builds after rust-lang/rust#60679
6 participants