Closed
Description
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