I'm trying to develop a crate which ends up using nix as a dependency.
I'm getting the following error through RLS since I've updated to the latest stable:
(stable-x86_64-unknown-linux-gnu unchanged - rustc 1.34.1 (fc50f328b 2019-04-24), ArchLinux 5.0.10-arch1-1-ARCH)
Could not compile `nix`.
process didn't exit successfully: `/home/xxx/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/rls --crate-name nix /home/xxx/.cargo/registry/src/github.com-1ecc6299db9ec823/nix-0.13.0/src/lib.rs --color never --crate-type lib --emit=dep-info,metadata -C debuginfo=2 -C metadata=e41c62fd44c3a368 -C extra-filename=-e41c62fd44c3a368 --out-dir /home/xxx/bug/target/rls/debug/deps -L dependency=/home/xxx/bug/target/rls/debug/deps --extern bitflags=/home/xxx/bug/target/rls/debug/deps/libbitflags-162b4a56bd08b901.rmeta --extern cfg_if=/home/xxx/bug/target/rls/debug/deps/libcfg_if-dab04317bb5fc6db.rmeta --extern libc=/home/xxx/bug/target/rls/debug/deps/liblibc-98ec97d48b6e5b85.rmeta --extern void=/home/xxx/bug/target/rls/debug/deps/libvoid-e59ad8b8a3ae09b4.rmeta --cap-lints allow --error-format=json --sysroot /home/xxx/.rustup/toolchains/stable-x86_64-unknown-linux-gnu` (exit code: 101)
Using "rust-client.logToFile": true, to get the log, I get this additional information:
{"message":"src/librustc/ty/context.rs:541: node_type: no type for node `expr <Self>::AT_SYMLINK_NOFOLLOW (id=43804)`","code":null,"level":"error: internal compiler error","spans":[],"children":[],"rendered":"error: internal compiler error: src/librustc/ty/context.rs:541: node_type: no type for node `expr <Self>::AT_SYMLINK_NOFOLLOW (id=43804)`\n\n"}
thread 'rustc' panicked at 'Box<Any>', src/librustc_errors/lib.rs:620:9
note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
{"message":"aborting due to previous error","code":null,"level":"error","spans":[],"children":[],"rendered":"error: aborting due to previous error\n\n"}
note: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports
note: rustc 1.34.1 (fc50f328b 2019-04-24) running on x86_64-unknown-linux-gnu
note: compiler flags: -C debuginfo=2 --crate-type lib
note: some of the compiler flags provided by cargo are hidden
I'm unsure whether this is an RLS or Rust bug, but this error does not happen when compiling through cargo check, cargo build, cargo build --release, cargo doc, etc, only through RLS, and I may not be able to give proper information in a rustc issue as to what the precise flags that cause this are.
The following minimal project triggers the bug when opening VSCode with the RLS extension installed :
Cargo.toml:
[package]
name = "bug"
version = "1.0.0"
authors = ["Le me"]
edition = "2018"
publish = false
[dependencies]
nix = "0.13.0"
src/main.rs:
fn main() {
let hw = "HelloWorld";
println!("{}", hw);
}
I haven't diagnosed which crate triggers another of these, but I'm also getting an error when compiling diesel:
{"message":"src/librustc/ty/context.rs:530: node_id_to_type: no type for node `expr <Self>::EMPTY (id=130531)`","code":null,"level":"error: internal compiler error","spans":[],"children":[],"rendered":"error: internal compiler error: src/librustc/ty/context.rs:530: node_id_to_type: no type for node `expr <Self>::EMPTY (id=130531)`\n\n"}
thread 'rustc' panicked at 'Box<Any>', src/librustc_errors/lib.rs:588:9
note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
{"message":"aborting due to previous error","code":null,"level":"error","spans":[],"children":[],"rendered":"error: aborting due to previous error\n\n"}
note: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports
note: rustc 1.33.0 (2aa4c46cf 2019-02-28) running on x86_64-unknown-linux-gnu
note: compiler flags: -C debuginfo=2 --crate-type lib
note: some of the compiler flags provided by cargo are hidden
I tried downgrading to an older Rust release (1.33.0) and it did not fix this issue.
Same thing with sdl2 crate:
Could not compile `sdl2`.
process didn't exit successfully: `/home/marcel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/rls --crate-name sdl2 /home/marcel/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.32.2/src/sdl2/lib.rs --color never --crate-type lib --emit=dep-info,metadata -C debuginfo=2 --cfg 'feature="default"' -C metadata=036db9bf7cdd3c9c -C extra-filename=-036db9bf7cdd3c9c --out-dir /home/marcel/Documents/dev/learning/opengl/nercury.github.io/opengl-tutorial/target/rls/debug/deps -L dependency=/home/marcel/Documents/dev/learning/opengl/nercury.github.io/opengl-tutorial/target/rls/debug/deps --extern bitflags=/home/marcel/Documents/dev/learning/opengl/nercury.github.io/opengl-tutorial/target/rls/debug/deps/libbitflags-162b4a56bd08b901.rmeta --extern lazy_static=/home/marcel/Documents/dev/learning/opengl/nercury.github.io/opengl-tutorial/target/rls/debug/deps/liblazy_static-3d9653f4293d1765.rmeta --extern libc=/home/marcel/Documents/dev/learning/opengl/nercury.github.io/opengl-tutorial/target/rls/debug/deps/liblibc-9c5393a63b000927.rmeta --extern num=/home/marcel/Documents/dev/learning/opengl/nercury.github.io/opengl-tutorial/target/rls/debug/deps/libnum-f1550afe3806bc12.rmeta --extern rand=/home/marcel/Documents/dev/learning/opengl/nercury.github.io/opengl-tutorial/target/rls/debug/deps/librand-f6b5a9079df2ff7d.rmeta --extern sdl2_sys=/home/marcel/Documents/dev/learning/opengl/nercury.github.io/opengl-tutorial/target/rls/debug/deps/libsdl2_sys-04f1bc3577a75b57.rmeta --cap-lints allow --error-format=json --sysroot /home/marcel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu` (exit code: 101)
{"message":"src/librustc/ty/context.rs:541: node_type: no type for node `expr <Self>::NOMOD (id=73197)`","code":null,"level":"error: internal compiler error","spans":[],"children":[],"rendered":"error: internal compiler error: src/librustc/ty/context.rs:541: node_type: no type for node `expr <Self>::NOMOD (id=73197)`\n\n"}
thread 'rustc' panicked at 'Box<Any>', src/librustc_errors/lib.rs:620:9
note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
{"message":"aborting due to previous error","code":null,"level":"error","spans":[],"children":[],"rendered":"error: aborting due to previous error\n\n"}
note: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports
note: rustc 1.34.1 (fc50f328b 2019-04-24) running on x86_64-unknown-linux-gnu
note: compiler flags: -C debuginfo=2 --crate-type lib
note: some of the compiler flags provided by cargo are hidden
Same with png:
Could not compile `png`.
process didn't exit successfully: `/Users/Michael/.rustup/toolchains/stable-x86_64-apple-darwin/bin/rls --crate-name png /Users/Michael/.cargo/registry/src/github.com-1ecc6299db9ec823/png-0.14.1/src/lib.rs --color never --crate-type lib --emit=dep-info,metadata -C debuginfo=2 --cfg 'feature="default"' --cfg 'feature="deflate"' --cfg 'feature="png-encoding"' -C metadata=9db8ebc124f361d0 -C extra-filename=-9db8ebc124f361d0 --out-dir /Users/Michael/rust/foo/target/rls/debug/deps -L dependency=/Users/Michael/rust/foo/target/rls/debug/deps --extern bitflags=/Users/Michael/rust/foo/target/rls/debug/deps/libbitflags-34e85485b1ddcbd8.rmeta --extern deflate=/Users/Michael/rust/foo/target/rls/debug/deps/libdeflate-5104fa98d76c741b.rmeta --extern inflate=/Users/Michael/rust/foo/target/rls/debug/deps/libinflate-b4eaa1b16660e524.rmeta --extern num_iter=/Users/Michael/rust/foo/target/rls/debug/deps/libnum_iter-a1893e0ace8cb9d6.rmeta --cap-lints allow --error-format=json --sysroot /Users/Michael/.rustup/toolchains/stable-x86_64-apple-darwin` (exit code: 101)
{"message":"src/librustc/ty/context.rs:541: node_type: no type for node `expr <Self>::IDENTITY (id=18857)`","code":null,"level":"error: internal compiler error","spans":[],"children":[],"rendered":"error: internal compiler error: src/librustc/ty/context.rs:541: node_type: no type for node `expr <Self>::IDENTITY (id=18857)`\n\n"}
thread 'rustc' panicked at 'Box<Any>', src/librustc_errors/lib.rs:620:9
note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
{"message":"aborting due to previous error","code":null,"level":"error","spans":[],"children":[],"rendered":"error: aborting due to previous error\n\n"}
note: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports
note: rustc 1.34.1 (fc50f328b 2019-04-24) running on x86_64-apple-darwin
note: compiler flags: -C debuginfo=2 --crate-type lib
note: some of the compiler flags provided by cargo are hidden
I also noticed the same issue when trying to use the clap crate. It compiles just fine by running $ cargo build, etc., but have an error when using RLS extension in VSCode.
{"message":"src/librustc/ty/context.rs:541: node_type: no type for node `expr <Self>::SC_NEGATE_REQS (id=50338)`","code":null,"level":"error: internal compiler error","spans":[],"children":[],"rendered":"error: internal compiler error: src/librustc/ty/context.rs:541: node_type: no type for node `expr <Self>::SC_NEGATE_REQS (id=50338)`\n\n"}
thread 'rustc' panicked at 'Box<Any>', src/librustc_errors/lib.rs:620:9
note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
{"message":"aborting due to previous error","code":null,"level":"error","spans":[],"children":[],"rendered":"error: aborting due to previous error\n\n"}
note: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports
note: rustc 1.34.1 (fc50f328b 2019-04-24) running on x86_64-apple-darwin
note: compiler flags: -C debuginfo=2 --crate-type lib
note: some of the compiler flags provided by cargo are hidden
I checked the common dependencies of all affected crates. It seems that the bitflags 1.0.5 update has caused this issue. Locking bitflags to 1.0.4 fixes the problem for me.
That seems to have worked for me too.
Nice one guys cargo update -p 'bitflags:1.0.5' --precise 1.0.4 is a effective workaround.
Now we need to figure out why rls can't handle this dependency when cargo can.
Now we need to figure out why rls can't handle this dependency when cargo can.
It'd be interesting to see what the changes between 1.0.4 and 1.0.5 are. Semver says "minor".
1.0.5
@KodrAus KodrAus released this a day ago
Use compiletest_rs flags supported by stable toolchain (https://github.com/bitflags/bitflags/pull/171)
Put the user provided attributes first (https://github.com/bitflags/bitflags/pull/173)
Make bitflags methods const on newer compilers (https://github.com/bitflags/bitflags/pull/175)
Copying my stacktrace from #1450 for convenience:
rls --cli
{"message":"src/librustc/ty/context.rs:556: node_type: no type for node `expr <Self>::IS_REGULAR (id=76215)`","code":null,"level":"error: internal compiler error","spans":[],"children":[],"rendered":"error: internal compiler error: src/librustc/ty/context.rs:556: node_type: no type for node `expr <Self>::IS_REGULAR (id=76215)`\n\n"}
thread 'rustc' panicked at 'Box<Any>', src/librustc_errors/lib.rs:636:9
stack backtrace:
note: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports
note: rustc 1.36.0-nightly (00859e3e6 2019-04-29) running on x86_64-unknown-linux-gnu
note: compiler flags: -C debuginfo=2 --crate-type lib
note: some of the compiler flags provided by cargo are hidden
0: 0x7f40d9af4e13 - std::sys::unix::backtrace::tracing::imp::unwind_backtrace::h0d6c439dca72ca11
at src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:39
1: 0x7f40d9aecc9b - std::sys_common::backtrace::_print::hea4ea4af6c4411e1
at src/libstd/sys_common/backtrace.rs:71
2: 0x7f40d9af1076 - std::panicking::default_hook::{{closure}}::hb59690c480567b51
at src/libstd/sys_common/backtrace.rs:59
at src/libstd/panicking.rs:197
3: 0x7f40d9af0e09 - std::panicking::default_hook::h0b2c7c1f5ffd3b4c
at src/libstd/panicking.rs:211
4: 0x7f40db57eef0 - rustc::util::common::panic_hook::h843db43ad0cf1382
5: 0x7f40d9af1868 - std::panicking::rust_panic_with_hook::h711d147cd5e0cf06
at src/libstd/panicking.rs:478
6: 0x7f40da42400c - std::panicking::begin_panic::ha898008710af638b
7: 0x7f40da43ec8e - rustc_errors::Handler::bug::hf3a8200efe6143d1
8: 0x7f40db2cdc42 - rustc::util::bug::opt_span_bug_fmt::{{closure}}::hc32a43ddbab80360
9: 0x7f40db2ccb69 - rustc::ty::context::tls::with_opt::{{closure}}::hdd224f249b19b8fd
10: 0x7f40db2cca84 - rustc::ty::context::tls::with_context_opt::h3832967f752274c7
11: 0x7f40db2ccb16 - rustc::ty::context::tls::with_opt::ha1b5a581a82ea24b
12: 0x7f40db2cdb57 - rustc::util::bug::opt_span_bug_fmt::h593e16e90d210bd5
13: 0x7f40db2cdac1 - rustc::util::bug::bug_fmt::hb4707b36bd10e7f8
14: 0x7f40db8b088a - rustc::ty::context::TypeckTables::node_type::{{closure}}::h3b11e279de4ea90e
15: 0x7f40db8b102a - rustc::ty::context::TypeckTables::expr_ty_adjusted::h32a1e626407aaad5
16: 0x7f40dc6d7ca5 - rustc_save_analysis::SaveContext::get_expr_data::h78c7ab51d332aff3
17: 0x7f40dc6c1208 - <rustc_save_analysis::dump_visitor::DumpVisitor<O> as syntax::visit::Visitor>::visit_expr::haba26a253446d0cd
18: 0x7f40dc6a8751 - rustc_save_analysis::dump_visitor::DumpVisitor<O>::process_assoc_const::h522c23606f1706fc
19: 0x7f40dc6b1cca - <rustc_save_analysis::dump_visitor::DumpVisitor<O> as syntax::visit::Visitor>::visit_item::h4b3a5450c224ada3
20: 0x7f40dc6a5efc - rustc_save_analysis::dump_visitor::DumpVisitor<O>::process_method::h5b0729d6a1d55eff
21: 0x7f40dc6b1dd2 - <rustc_save_analysis::dump_visitor::DumpVisitor<O> as syntax::visit::Visitor>::visit_item::h4b3a5450c224ada3
22: 0x7f40dc6b454b - <rustc_save_analysis::dump_visitor::DumpVisitor<O> as syntax::visit::Visitor>::visit_item::h4b3a5450c224ada3
23: 0x7f40dc6b454b - <rustc_save_analysis::dump_visitor::DumpVisitor<O> as syntax::visit::Visitor>::visit_item::h4b3a5450c224ada3
24: 0x7f40dc6b158b - <rustc_save_analysis::dump_visitor::DumpVisitor<O> as syntax::visit::Visitor>::visit_mod::h6daa1cf87e6c0394
25: 0x7f40dc6da830 - <rustc_save_analysis::DumpHandler as rustc_save_analysis::SaveHandler>::save::hd40bf9919f17d6d1
26: 0x7f40dd65368c - rustc::dep_graph::graph::DepGraph::with_ignore::ha94958a6e9181ec7
27: 0x7f40dd6493f5 - rustc_driver::run_compiler::{{closure}}::{{closure}}::{{closure}}::hd9b442400b8375ac
28: 0x7f40dd6484a3 - rustc::util::common::time::h5e41458033525ee7
29: 0x7f40dd631aee - rustc::ty::context::tls::enter_global::h9821e6759f9d2f3a
30: 0x7f40dd649572 - rustc_interface::passes::BoxedGlobalCtxt::access::{{closure}}::h3271e54ef7e41e4b
31: 0x7f40dd2b8f44 - rustc_interface::passes::create_global_ctxt::{{closure}}::h1b5279f309d64952
32: 0x7f40dd64b81a - rustc_interface::interface::run_compiler_in_existing_thread_pool::hcca8ecaeda3badf1
33: 0x7f40dd6ca5a3 - std::thread::local::LocalKey<T>::with::ha08aa88e11205f04
34: 0x7f40dd690874 - scoped_tls::ScopedKey<T>::set::h3906ac5daec2139d
35: 0x7f40dd6c610f - syntax::with_globals::h3460b90a71271dc2
36: 0x7f40dd624129 - std::sys_common::backtrace::__rust_begin_short_backtrace::h93f92d975520f5fe
37: 0x7f40d9b02639 - __rust_maybe_catch_panic
at src/libpanic_unwind/lib.rs:85
38: 0x7f40dd63e718 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h7c9983fddd413bcc
39: 0x7f40d9ad377e - <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::hf5407189cfbe0e45
at /rustc/00859e3e653973120006aaf3227823062dde1ba7/src/liballoc/boxed.rs:704
40: 0x7f40d9b012af - std::sys::unix::thread::Thread::new::thread_start::h367a735064fa0a3b
at /rustc/00859e3e653973120006aaf3227823062dde1ba7/src/liballoc/boxed.rs:704
at src/libstd/sys_common/thread.rs:13
at src/libstd/sys/unix/thread.rs:79
41: 0x7f40d94646da - start_thread
42: 0x7f40d8f7588e - __clone
43: 0x0 - <unknown>
query stack during panic:
end of query stack
{"message":"aborting due to previous error","code":null,"level":"error","spans":[],"children":[],"rendered":"error: aborting due to previous error\n\n"}
note: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports
note: rustc 1.36.0-nightly (00859e3e6 2019-04-29) running on x86_64-unknown-linux-gnu
note: compiler flags: -C debuginfo=2 --crate-type lib
note: some of the compiler flags provided by cargo are hidden
Oh dear... I鈥檇 forgotten we had an RLS issue caused by the changes in bitflags to support const functions before publishing it.
The author pointed out the crash initially.
Pinning bitflags to 1.0.4 would be your best bet until we鈥檝e got this sorted.
Same issue here while compiling clap. Pinning bitflags to 1.0.4 works for me, too.
I got the issue when using shrinkwraprs as a dependency. None of its versions worked. I had to actually strip it out.
@KodrAus consider yanking 1.0.5 until https://github.com/rust-lang/rust/issues/59134 is fixed to reduce the impact of the bug - you can probably just republish it as 1.0.6 after this is sorted out
@jonas-schievink Well, that bug was logged a few months ago and doesn't appear to have made any forward progress in that time. Do we know what a fix in RLS would look like?
Having RLS simply not work for such a pervasive dependency is unfortunate though, so I'll yank 1.0.5.
EDIT: Actually, that comment about not making forward progress is a bit unfair. It looks like you are exploring a fix.
Alrighty, 1.0.5 has been yanked now so anybody pinned to 1.0.4 should be able to revert those tighter bounds. We won鈥檛 publish a new version that hits this bug.
Thanks everyone for investigating and posting a workaround! The fix for the current nightly is pending at https://github.com/rust-lang/rust/pull/60649 (which hopefully will be backported to beta, in which case it will be available in Rust 1.35)
Most helpful comment
Nice one guys
cargo update -p 'bitflags:1.0.5' --precise 1.0.4is a effective workaround.Now we need to figure out why rls can't handle this dependency when cargo can.