Skip to content

compiler panic #104423

Closed
Closed
@kontsaki

Description

@kontsaki

Hello, only happened once and I couldn't reproduce it.

Code

use clap::Parser;
use miette::{IntoDiagnostic, Result};
use thirtyfour::prelude::*;
use tokio::process;
use walkdir::WalkDir;
use watchexec::{
    action::Action,
    config::{InitConfig, RuntimeConfig},
    error,
    handler::PrintDebug,
    Watchexec,
};

#[derive(Parser)]
#[command(version)]
struct Cli {
    url: String,
}

#[tokio::main]
async fn main() -> Result<()> {
    let cli = Cli::parse();

    let mut backend = process::Command::new("./geckodriver")
        .spawn()
        .into_diagnostic()?;

    let caps = DesiredCapabilities::firefox();
    let driver = WebDriver::new("http://localhost:4444", caps)
        .await
        .into_diagnostic()?;

    driver.goto(cli.url).await.into_diagnostic()?;

    let watcher = watch(driver.clone()).await;
    backend.kill().await.into_diagnostic()?;
    driver.quit().await.into_diagnostic()?;
    watcher?;
    Ok(())
}

async fn watch(driver: WebDriver) -> Result<()> {
    let files = WalkDir::new(".")
        .into_iter()
        .filter_map(|e| e.ok())
        .filter(|e| e.file_type().is_file() && e.file_name().to_string_lossy().starts_with("."))
        .map(|e| e.into_path());

    let mut init = InitConfig::default();
    init.on_error(PrintDebug(std::io::stderr()));

    let mut runtime = RuntimeConfig::default();
    runtime.pathset(files);

    let refresher = driver.clone();
    runtime.on_action(move |a: Action| {
        println!("Action {a:?}");

        let refresher = refresher.clone();
        async move {
            refresher.refresh().await.unwrap();
            Ok::<(), error::RuntimeError>(())
        }
    });

    let we = Watchexec::new(init, runtime)?;
    we.main().await.into_diagnostic()?.unwrap();
    Ok(())
}

Meta

rustc --version --verbose:

rustc 1.65.0 (897e37553 2022-11-02)
binary: rustc
commit-hash: 897e37553bba8b42751c67658967889d11ecd120
commit-date: 2022-11-02
host: x86_64-unknown-linux-gnu
release: 1.65.0
LLVM version: 15.0.0

Error output

thread 'rustc' panicked at 'attempted to read from stolen value: rustc_middle::mir::Body', compiler/rustc_mir_transform/src/ffi_unwind_calls.rs:50:78
stack backtrace:
   0:     0x7fec4996dd40 - std::backtrace_rs::backtrace::libunwind::trace::h32eb3e08e874dd27
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
   1:     0x7fec4996dd40 - std::backtrace_rs::backtrace::trace_unsynchronized::haa3f451d27bc11a5
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x7fec4996dd40 - std::sys_common::backtrace::_print_fmt::h5b94a01bb4289bb5
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/std/src/sys_common/backtrace.rs:66:5
   3:     0x7fec4996dd40 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hb070b7fa7e3175df
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/std/src/sys_common/backtrace.rs:45:22
   4:     0x7fec499c8bfe - core::fmt::write::hd5207aebbb9a86e9
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/core/src/fmt/mod.rs:1202:17
   5:     0x7fec4995e935 - std::io::Write::write_fmt::h3bd699bbd129ab8a
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/std/src/io/mod.rs:1679:15
   6:     0x7fec499709f3 - std::sys_common::backtrace::_print::h7a21be552fdf58da
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/std/src/sys_common/backtrace.rs:48:5
   7:     0x7fec499709f3 - std::sys_common::backtrace::print::ha85c41fe4dd80b13
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/std/src/sys_common/backtrace.rs:35:9
   8:     0x7fec499709f3 - std::panicking::default_hook::{{closure}}::h04cca40023d0eeca
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/std/src/panicking.rs:295:22
   9:     0x7fec499706df - std::panicking::default_hook::haa3ca8c310ed5402
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/std/src/panicking.rs:314:9
  10:     0x7fec4c19e2e1 - rustc_driver[cfb34b1539811fe8]::DEFAULT_HOOK::{closure#0}::{closure#0}
  11:     0x7fec4997122d - std::panicking::rust_panic_with_hook::h7b190ce1a948faac
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/std/src/panicking.rs:702:17
  12:     0x7fec49971087 - std::panicking::begin_panic_handler::{{closure}}::hbafbfdc3e1b97f68
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/std/src/panicking.rs:588:13
  13:     0x7fec4996e1ec - std::sys_common::backtrace::__rust_end_short_backtrace::hda93e5fef243b4c0
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/std/src/sys_common/backtrace.rs:138:18
  14:     0x7fec49970da2 - rust_begin_unwind
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/std/src/panicking.rs:584:5
  15:     0x7fec499c57d3 - core::panicking::panic_fmt::h8d17ca1073d9a733
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/core/src/panicking.rs:142:14
  16:     0x7fec4c020efc - rustc_mir_transform[de1f68ec5b9668bc]::ffi_unwind_calls::has_ffi_unwind_calls
  17:     0x7fec4b83088c - rustc_query_system[860ed7b39cdfb46b]::query::plumbing::try_load_from_disk_and_cache_in_memory::<rustc_query_impl[d6191eea714bd250]::plumbing::QueryCtxt, rustc_span[8f00505efff112e2]::def_id::LocalDefId, bool>
  18:     0x7fec4b82fb8e - rustc_query_system[860ed7b39cdfb46b]::query::plumbing::try_execute_query::<rustc_query_impl[d6191eea714bd250]::plumbing::QueryCtxt, rustc_query_system[860ed7b39cdfb46b]::query::caches::DefaultCache<rustc_span[8f00505efff112e2]::def_id::LocalDefId, bool>>
  19:     0x7fec4c0dd4fe - <rustc_query_impl[d6191eea714bd250]::Queries as rustc_middle[a9ca1c3f9fd197cd]::ty::query::QueryEngine>::has_ffi_unwind_calls
  20:     0x7fec4ba3b6fb - <rustc_query_impl[d6191eea714bd250]::queries::has_ffi_unwind_calls as rustc_query_system[860ed7b39cdfb46b]::query::config::QueryDescription<rustc_query_impl[d6191eea714bd250]::plumbing::QueryCtxt>>::execute_query
  21:     0x7fec4aac92f0 - <rustc_middle[a9ca1c3f9fd197cd]::ty::context::TyCtxt as rustc_query_system[860ed7b39cdfb46b]::dep_graph::DepContext>::try_load_from_on_disk_cache
  22:     0x7fec4aac91d6 - <rustc_query_system[860ed7b39cdfb46b]::dep_graph::graph::DepGraph<rustc_middle[a9ca1c3f9fd197cd]::dep_graph::dep_node::DepKind>>::exec_cache_promotions::<rustc_middle[a9ca1c3f9fd197cd]::ty::context::TyCtxt>
  23:     0x7fec4aac9008 - <rustc_query_impl[d6191eea714bd250]::on_disk_cache::OnDiskCache as rustc_middle[a9ca1c3f9fd197cd]::ty::context::OnDiskCache>::drop_serialized_data
  24:     0x7fec4bf2c813 - <rustc_session[c5946fac61f8bc34]::session::Session>::time::<(), rustc_incremental[d8dc775a25cf5db2]::persist::save::save_dep_graph::{closure#0}::{closure#2}::{closure#0}>
  25:     0x7fec4bf2c3f9 - <rustc_middle[a9ca1c3f9fd197cd]::dep_graph::dep_node::DepKind as rustc_query_system[860ed7b39cdfb46b]::dep_graph::DepKind>::with_deps::<rustc_incremental[d8dc775a25cf5db2]::persist::save::save_dep_graph::{closure#0}, ()>
  26:     0x7fec4b04fc81 - rustc_incremental[d8dc775a25cf5db2]::persist::save::save_dep_graph
  27:     0x7fec4b04fbcd - <rustc_session[c5946fac61f8bc34]::session::Session>::time::<(), <rustc_interface[3182dd864eff9d7d]::interface::Compiler>::enter<rustc_driver[cfb34b1539811fe8]::run_compiler::{closure#1}::{closure#2}, core[8c92e53db3fc2eaa]::result::Result<core[8c92e53db3fc2eaa]::option::Option<rustc_interface[3182dd864eff9d7d]::queries::Linker>, rustc_errors[f77a66b68db622d5]::ErrorGuaranteed>>::{closure#0}>
  28:     0x7fec4b04e43c - rustc_interface[3182dd864eff9d7d]::interface::create_compiler_and_run::<core[8c92e53db3fc2eaa]::result::Result<(), rustc_errors[f77a66b68db622d5]::ErrorGuaranteed>, rustc_driver[cfb34b1539811fe8]::run_compiler::{closure#1}>
  29:     0x7fec4b04cac1 - <scoped_tls[e395fa6e23b19669]::ScopedKey<rustc_span[8f00505efff112e2]::SessionGlobals>>::set::<rustc_interface[3182dd864eff9d7d]::interface::run_compiler<core[8c92e53db3fc2eaa]::result::Result<(), rustc_errors[f77a66b68db622d5]::ErrorGuaranteed>, rustc_driver[cfb34b1539811fe8]::run_compiler::{closure#1}>::{closure#0}, core[8c92e53db3fc2eaa]::result::Result<(), rustc_errors[f77a66b68db622d5]::ErrorGuaranteed>>
  30:     0x7fec4b04c7af - std[71cb4861428b0c25]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[3182dd864eff9d7d]::util::run_in_thread_pool_with_globals<rustc_interface[3182dd864eff9d7d]::interface::run_compiler<core[8c92e53db3fc2eaa]::result::Result<(), rustc_errors[f77a66b68db622d5]::ErrorGuaranteed>, rustc_driver[cfb34b1539811fe8]::run_compiler::{closure#1}>::{closure#0}, core[8c92e53db3fc2eaa]::result::Result<(), rustc_errors[f77a66b68db622d5]::ErrorGuaranteed>>::{closure#0}, core[8c92e53db3fc2eaa]::result::Result<(), rustc_errors[f77a66b68db622d5]::ErrorGuaranteed>>
  31:     0x7fec4c001d70 - <<std[71cb4861428b0c25]::thread::Builder>::spawn_unchecked_<rustc_interface[3182dd864eff9d7d]::util::run_in_thread_pool_with_globals<rustc_interface[3182dd864eff9d7d]::interface::run_compiler<core[8c92e53db3fc2eaa]::result::Result<(), rustc_errors[f77a66b68db622d5]::ErrorGuaranteed>, rustc_driver[cfb34b1539811fe8]::run_compiler::{closure#1}>::{closure#0}, core[8c92e53db3fc2eaa]::result::Result<(), rustc_errors[f77a66b68db622d5]::ErrorGuaranteed>>::{closure#0}, core[8c92e53db3fc2eaa]::result::Result<(), rustc_errors[f77a66b68db622d5]::ErrorGuaranteed>>::{closure#1} as core[8c92e53db3fc2eaa]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  32:     0x7fec4997b003 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h49f797984e2121bf
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/alloc/src/boxed.rs:1940:9
  33:     0x7fec4997b003 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hfa4f3d0ee6440e0b
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/alloc/src/boxed.rs:1940:9
  34:     0x7fec4997b003 - std::sys::unix::thread::Thread::new::thread_start::h62ca48b42d48a8fc
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/std/src/sys/unix/thread.rs:108:17
  35:     0x7fec49694b43 - <unknown>
  36:     0x7fec49726a00 - <unknown>
  37:                0x0 - <unknown>

error: internal compiler error: unexpected panic

Metadata

Metadata

Assignees

No one assigned

    Labels

    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) ❄️T-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