Skip to content

thread 'rustc' panicked at 'failed to lookup SourceFile in new context', src/librustc_middle/ty/query/on_disk_cache.rs:456:17 #73434

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Closed
bjorn3 opened this issue Jun 17, 2020 · 2 comments
Labels
C-bug Category: This is a bug. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@bjorn3
Copy link
Member

bjorn3 commented Jun 17, 2020

Code

//- card.rs
/// A simple wrapper for a device node.
#[derive(Debug)]
pub struct Card(std::fs::File);

/// Implementing `AsRawFd` is a prerequisite to implementing the traits found
/// in this crate. Here, we are just calling `as_raw_fd()` on the inner File.
impl std::os::unix::io::AsRawFd for Card {
    fn as_raw_fd(&self) -> std::os::unix::io::RawFd {
        self.0.as_raw_fd()
    }
}

/// Simple helper methods for opening a `Card`.
impl Card {
    pub fn open(path: &str) -> Self {
        let mut options = std::fs::OpenOptions::new();
        options.read(true);
        options.write(true);
        Card(options.open(path).unwrap())
    }
}

impl drm::Device for Card {}
impl drm::control::Device for Card {}

//- main.rs
pub use drm::Device;

pub use drm::control::Device as ControlDevice;
pub use drm::control::ResourceHandle;
pub use drm::control::property::*;
pub use drm::buffer::Buffer;

//mod buffer;
mod card;

fn main() {
    let gpu = card::Card::open("/dev/dri/card0");
    println!("{:#?}", gpu.get_driver().unwrap());
    println!("{:#?}", gpu.get_bus_id());
    println!("{:#?}", gpu.authenticated());
    println!("{:#?}", gpu.create_dumb_buffer((100, 100), drm::buffer::format::PixelFormat::RGB332).unwrap());
    println!("{:#?}", gpu.get_bus_id());
    println!("{:#?}", gpu.plane_handles());
    println!("{:#?}", gpu.resource_handles());
}

//- Cargo.toml
[package]
name = "simple_login_screen"
version = "0.1.0"
authors = ["bjorn3 <bjorn3@users.noreply.github.com>"]
edition = "2018"

[dependencies]
drm = { git = "https://github.com/Smithay/drm-rs.git", branch = "develop" }

[patch."https://github.com/Smithay/drm-rs.git"]
drm = { path = "./drm-rs" }

./drm-rs is a checkout of Smithay/drm-rs@8a3c6cf.

Meta

cargo clean fixed the issue.

rustc --version --verbose:

rustc 1.45.0-nightly (647016923 2020-04-28)
binary: rustc
commit-hash: 6470169237833d02c399568a375d9b47cbfaeccc
commit-date: 2020-04-28
host: x86_64-unknown-linux-gnu
release: 1.45.0-nightly
LLVM version: 9.0

Error output

thread 'rustc' panicked at 'failed to lookup `SourceFile` in new context', src/librustc_middle/ty/query/on_disk_cache.rs:456:17
Backtrace

stack backtrace:
   0: backtrace::backtrace::libunwind::trace
             at /cargo/registry/src/github.heygears.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/libunwind.rs:86
   1: backtrace::backtrace::trace_unsynchronized
             at /cargo/registry/src/github.heygears.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/mod.rs:66
   2: std::sys_common::backtrace::_print_fmt
             at src/libstd/sys_common/backtrace.rs:78
   3: <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt
             at src/libstd/sys_common/backtrace.rs:59
   4: core::fmt::write
             at src/libcore/fmt/mod.rs:1069
   5: std::io::Write::write_fmt
             at src/libstd/io/mod.rs:1531
   6: std::sys_common::backtrace::_print
             at src/libstd/sys_common/backtrace.rs:62
   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:198
   9: std::panicking::default_hook
             at src/libstd/panicking.rs:218
  10: rustc_driver::report_ice
  11: std::panicking::rust_panic_with_hook
             at src/libstd/panicking.rs:481
  12: rust_begin_unwind
             at src/libstd/panicking.rs:385
  13: core::panicking::panic_fmt
             at src/libcore/panicking.rs:89
  14: core::option::expect_failed
             at src/libcore/option.rs:1264
  15: <rustc_middle::ty::query::on_disk_cache::CacheDecoder as serialize::serialize::SpecializedDecoder<rustc_span::span_encoding::Span>>::specialized_decode
  16: <(T10,T11) as serialize::serialize::Decodable>::decode
  17: <rustc_middle::ty::query::on_disk_cache::CacheDecoder as serialize::serialize::SpecializedDecoder<rustc_span::span_encoding::Span>>::specialized_decode
  18: serialize::serialize::Decoder::read_option
  19: <rustc_middle::ty::Generics as serialize::serialize::Decodable>::decode
  20: rustc_middle::ty::query::on_disk_cache::OnDiskCache::try_load_query_result
  21: rustc_query_system::query::plumbing::get_query
  22: rustc_typeck::variance::terms::TermsContext::add_inferreds_for_item
  23: rustc_typeck::variance::terms::determine_parameters_to_be_inferred
  24: rustc_typeck::variance::crate_variances
  25: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
  26: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
  27: rustc_query_system::query::plumbing::force_query
  28: rustc_middle::ty::query::force_from_dep_node
  29: rustc_query_system::dep_graph::graph::DepGraph<K>::try_mark_previous_green
  30: rustc_query_system::dep_graph::graph::DepGraph<K>::try_mark_previous_green
  31: rustc_query_system::dep_graph::graph::DepGraph<K>::try_mark_green_and_read
  32: rustc_query_system::query::plumbing::ensure_query
  33: rustc_data_structures::sync::par_for_each_in
  34: rustc_hir::hir::Crate::par_visit_all_item_likes
  35: rustc_typeck::check_crate
  36: rustc_interface::passes::analysis
  37: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::analysis>::compute
  38: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
  39: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
  40: rustc_query_system::query::plumbing::get_query
  41: rustc_middle::ty::context::tls::enter_global
  42: rustc_interface::interface::run_compiler_in_existing_thread_pool
  43: scoped_tls::ScopedKey<T>::set
  44: rustc_ast::attr::with_globals
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

error: internal compiler error: unexpected panic

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.45.0-nightly (647016923 2020-04-28) running on x86_64-unknown-linux-gnu

note: compiler flags: -C bitcode-in-rlib=no -C debuginfo=2 -C incremental --crate-type bin

note: some of the compiler flags provided by cargo are hidden

query stack during panic:
#0 [generics_of] processing `<card::Card as std::fmt::Debug>::fmt`
#1 [crate_variances] computing the variances for items in this crate
#2 [analysis] running analysis passes on this crate
end of query stack

@bjorn3 bjorn3 added C-bug Category: This is a bug. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Jun 17, 2020
@ehuss
Copy link
Contributor

ehuss commented Jun 17, 2020

2020-04-28 is quite old for a nightly. This looks like a duplicate of #70924.

@bjorn3
Copy link
Member Author

bjorn3 commented Jun 17, 2020

I didn't realize I was using an old nightly.

@bjorn3 bjorn3 closed this as completed Jun 17, 2020
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
C-bug Category: This is a bug. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

No branches or pull requests

2 participants