Skip to content

Rustc panics while compiling gstreamer in RLS #64659

Closed
@haecker-felix

Description

@haecker-felix

RLS cannot build my project, which uses gstreamer. Compiling it normally with rustc works fine.

rustc 1.39.0-nightly (eceec57f7 2019-09-18)
x86_64-unknown-linux-gnu

Affected project for reference: https://gitlab.gnome.org/World/Shortwave

I launched RLS manually with RUST_LOG=rls=debug rls --cli

{"message":"src/librustc/ty/context.rs:211: node type <I>::Item (hir_id=HirId { owner: DefIndex(4352), local_id: 4 }) with HirId::owner DefId(0:4352 ~ gstreamer[a0c2]::buffer[0]::{{impl}}[3]::fmt[0]::{{impl}}[0]) cannot be placed in TypeckTables with local_id_root DefId(0:4346 ~ gstreamer[a0c2]::buffer[0]::{{impl}}[3]::fmt[0])","code":null,"level":"error: internal compiler error","spans":[],"children":[],"rendered":"error: internal compiler error: src/librustc/ty/context.rs:211: node type <I>::Item (hir_id=HirId { owner: DefIndex(4352), local_id: 4 }) with HirId::owner DefId(0:4352 ~ gstreamer[a0c2]::buffer[0]::{{impl}}[3]::fmt[0]::{{impl}}[0]) cannot be placed in TypeckTables with local_id_root DefId(0:4346 ~ gstreamer[a0c2]::buffer[0]::{{impl}}[3]::fmt[0])\n\n"}
thread 'rustc' panicked at 'Box<Any>', src/librustc_errors/lib.rs:643:9
stack backtrace:
{"artifact":"/home/haecker-felix/Dokumente/Projekte/Shortwave/target/rls/debug/deps/diesel-d084ca5a95a852d7.d","emit":"dep-info"}
   0: backtrace::backtrace::libunwind::trace
             at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.37/src/backtrace/libunwind.rs:88
   1: backtrace::backtrace::trace_unsynchronized
             at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.37/src/backtrace/mod.rs:66
   2: std::sys_common::backtrace::_print_fmt
             at src/libstd/sys_common/backtrace.rs:76
   3: <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt
             at src/libstd/sys_common/backtrace.rs:60
   4: core::fmt::write
             at src/libcore/fmt/mod.rs:1030
   5: std::io::Write::write_fmt
             at src/libstd/io/mod.rs:1412
   6: std::sys_common::backtrace::_print
             at src/libstd/sys_common/backtrace.rs:64
   7: std::sys_common::backtrace::print
             at src/libstd/sys_common/backtrace.rs:49
   8: std::panicking::default_hook::{{closure}}
             at src/libstd/panicking.rs:196
   9: std::panicking::default_hook
             at src/libstd/panicking.rs:210
  10: rustc_driver::report_ice
  11: std::panicking::rust_panic_with_hook
             at src/libstd/panicking.rs:477
  12: std::panicking::begin_panic
  13: rustc_errors::Handler::bug
  14: rustc::util::bug::opt_span_bug_fmt::{{closure}}
  15: rustc::ty::context::tls::with_opt::{{closure}}
  16: rustc::ty::context::tls::with_context_opt
  17: rustc::ty::context::tls::with_opt
  18: rustc::util::bug::opt_span_bug_fmt
  19: rustc::util::bug::bug_fmt
  20: rustc::ty::context::validate_hir_id_for_typeck_tables::{{closure}}
  21: rustc::ty::context::tls::with::{{closure}}
  22: rustc::ty::context::tls::with_context::{{closure}}
  23: rustc::ty::context::tls::with_context_opt
  24: rustc::ty::context::tls::with_context
  25: rustc::ty::context::tls::with
  26: rustc::ty::context::TypeckTables::qpath_res
  27: rustc_save_analysis::SaveContext::get_path_res
  28: <rustc_save_analysis::dump_visitor::DumpVisitor as syntax::visit::Visitor>::visit_ty
  29: <rustc_save_analysis::dump_visitor::DumpVisitor as syntax::visit::Visitor>::visit_generics
  30: rustc_save_analysis::dump_visitor::DumpVisitor::process_generic_params
  31: <rustc_save_analysis::dump_visitor::DumpVisitor as syntax::visit::Visitor>::visit_item
  32: rustc_save_analysis::dump_visitor::DumpVisitor::process_method::{{closure}}
  33: rustc_save_analysis::dump_visitor::DumpVisitor::process_method
  34: <rustc_save_analysis::dump_visitor::DumpVisitor as syntax::visit::Visitor>::visit_item
  35: <rustc_save_analysis::dump_visitor::DumpVisitor as syntax::visit::Visitor>::visit_item
  36: <rustc_save_analysis::dump_visitor::DumpVisitor as syntax::visit::Visitor>::visit_mod
  37: rustc::dep_graph::graph::DepGraph::with_ignore
  38: rustc_driver::run_compiler::{{closure}}::{{closure}}::{{closure}}
  39: rustc::util::common::time
  40: rustc_interface::passes::BoxedGlobalCtxt::access::{{closure}}
  41: rustc_interface::passes::create_global_ctxt::{{closure}}
  42: rustc_interface::interface::run_compiler_in_existing_thread_pool
  43: std::thread::local::LocalKey<T>::with
  44: syntax::with_globals
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose 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.39.0-nightly (eceec57f7 2019-09-18) 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

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"}
{"artifact":"/home/haecker-felix/Dokumente/Projekte/Shortwave/target/rls/debug/deps/save-analysis/libdiesel-d084ca5a95a852d7.json","emit":"save-analysis"}
{"artifact":"/home/haecker-felix/Dokumente/Projekte/Shortwave/target/rls/debug/deps/libdiesel-d084ca5a95a852d7.rmeta","emit":"metadata"}
{"artifact":"/home/haecker-felix/Dokumente/Projekte/Shortwave/target/rls/debug/deps/libdiesel-d084ca5a95a852d7.rlib","emit":"link"}
[2019-09-21T13:59:02Z DEBUG rls::build::cargo] error running `compile_with_exec`: ErrorMessage { msg: "build failed" }

stack backtrace:
   0: failure::backtrace::internal::InternalBacktrace::new
   1: failure::backtrace::Backtrace::new
   2: cargo::core::compiler::job_queue::JobQueue::drain_the_queue
   3: std::panicking::try::do_call
   4: __rust_maybe_catch_panic
             at src/libpanic_unwind/lib.rs:80
   5: crossbeam_utils::thread::scope
   6: cargo::core::compiler::job_queue::JobQueue::execute
   7: cargo::core::compiler::context::Context::compile
   8: cargo::ops::cargo_compile::compile_ws
   9: cargo::ops::cargo_compile::compile_with_exec
  10: rls::build::cargo::run_cargo_ws
  11: rls::build::cargo::run_cargo
  12: std::sys_common::backtrace::__rust_begin_short_backtrace
  13: std::panicking::try::do_call
  14: __rust_maybe_catch_panic
             at src/libpanic_unwind/lib.rs:80
  15: core::ops::function::FnOnce::call_once{{vtable.shim}}
  16: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
             at /rustc/eceec57f72150dd548e05025a05a93381da41385/src/liballoc/boxed.rs:922
  17: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
             at /rustc/eceec57f72150dd548e05025a05a93381da41385/src/liballoc/boxed.rs:922
      std::sys_common::thread::start_thread
             at src/libstd/sys_common/thread.rs:13
      std::sys::unix::thread::Thread::new::thread_start
             at src/libstd/sys/unix/thread.rs:79
  18: start_thread
             at pthread_create.c:479
  19: clone

{"jsonrpc":"2.0","method":"window/progress","params":{"done":true,"id":"progress_1","message":null,"percentage":null,"title":"Building"}}
{"jsonrpc":"2.0","method":"window/progress","params":{"done":null,"id":"progress_0","message":null,"percentage":null,"title":"Indexing"}}
{"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[{"message":"build failed\nerror: Could not compile `gstreamer`.\n","range":{"end":{"character":0,"line":9999},"start":{"character":0,"line":0}},"severity":1}],"uri":"file:///home/haecker-felix/Dokumente/Projekte/Shortwave/Cargo.toml"}}

Metadata

Metadata

Labels

A-save-analysisArea: saving results of analyses such as inference and borrowck results to a file.C-bugCategory: This is a bug.E-needs-mcveCall for participation: This issue has a repro, but needs a Minimal Complete and Verifiable ExampleI-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️P-highHigh priorityT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions