-
Notifications
You must be signed in to change notification settings - Fork 14k
Description
When documenting code that depends on the acpi crate and contains a type which implements the AcpiHandler trait from acpi, RustDoc panics with the message 'no entry found for key'.
This panic appears to be quite similar to the one described in issue #103463. However, the commit fixing that issue was merged in #103649 (12 days ago), and this panic is still reproducible on the latest nightly (e631891 2022-11-13), while the panic with the luminance crate described by #103463 is not reproducible on the latest nightly. Additionally, unlike #103463, simply useing acpi::AcpiHandler is not sufficient to cause the panic; the crate that depends on acpi must actually implement the trait in order to cause RustDoc to panic. Therefore, I thought this seemed like it deserved a separate issue from #103463.
Code
Cargo.toml:
[package]
name = "rustdoc-panic-repro"
version = "0.1.0"
edition = "2021"
[dependencies]
acpi = "4"lib.rs
#[derive(Clone)]
struct MyAcpiHandler;
impl acpi::AcpiHandler for MyAcpiHandler {
unsafe fn map_physical_region<T>(&self, _: usize, _: usize) -> acpi::PhysicalMapping<Self, T> {
unimplemented!()
}
fn unmap_physical_region<T>(_: &acpi::PhysicalMapping<Self, T>) {
unimplemented!()
}
}A Git repository containing the reproduction is also available here: https://github.com/hawkw/rustdoc-panic-repro
Meta
rustc --version --verbose:
rustc 1.67.0-nightly (e631891f7 2022-11-13)
binary: rustc
commit-hash: e631891f7ad40eac3ef58ec3c2b57ecd81e40615
commit-date: 2022-11-13
host: x86_64-unknown-linux-gnu
release: 1.67.0-nightly
LLVM version: 15.0.4
Error output
$ cargo doc
Documenting rustdoc-panic-repro v0.1.0 (/home/eliza/Code/rustdoc-panic-repro)
thread 'rustc' panicked at 'no entry found for key', src/librustdoc/passes/collect_intra_doc_links.rs:782:16
stack backtrace:
<snip, see details>Backtrace
thread 'rustc' panicked at 'no entry found for key', src/librustdoc/passes/collect_intra_doc_links.rs:782:16
stack backtrace:
0: 0x7fb307758e40 - std::backtrace_rs::backtrace::libunwind::trace::he4d5f2c13fd7ea58
at /rustc/e631891f7ad40eac3ef58ec3c2b57ecd81e40615/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
1: 0x7fb307758e40 - std::backtrace_rs::backtrace::trace_unsynchronized::ha872462b0d7f1993
at /rustc/e631891f7ad40eac3ef58ec3c2b57ecd81e40615/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
2: 0x7fb307758e40 - std::sys_common::backtrace::_print_fmt::hfa57ea34975e92c8
at /rustc/e631891f7ad40eac3ef58ec3c2b57ecd81e40615/library/std/src/sys_common/backtrace.rs:65:5
3: 0x7fb307758e40 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hdf4fb6a2aa638ae6
at /rustc/e631891f7ad40eac3ef58ec3c2b57ecd81e40615/library/std/src/sys_common/backtrace.rs:44:22
4: 0x7fb3077bb2fe - core::fmt::write::h556296da8255a0fe
at /rustc/e631891f7ad40eac3ef58ec3c2b57ecd81e40615/library/core/src/fmt/mod.rs:1209:17
5: 0x7fb307749185 - std::io::Write::write_fmt::h1e63bc45d9e0b177
at /rustc/e631891f7ad40eac3ef58ec3c2b57ecd81e40615/library/std/src/io/mod.rs:1682:15
6: 0x7fb307758c05 - std::sys_common::backtrace::_print::h18ecb2198a8971d0
at /rustc/e631891f7ad40eac3ef58ec3c2b57ecd81e40615/library/std/src/sys_common/backtrace.rs:47:5
7: 0x7fb307758c05 - std::sys_common::backtrace::print::he62f784f6f099fe2
at /rustc/e631891f7ad40eac3ef58ec3c2b57ecd81e40615/library/std/src/sys_common/backtrace.rs:34:9
8: 0x7fb30775b9af - std::panicking::default_hook::{{closure}}::h220c4bc545c14f7e
at /rustc/e631891f7ad40eac3ef58ec3c2b57ecd81e40615/library/std/src/panicking.rs:267:22
9: 0x7fb30775b6ea - std::panicking::default_hook::hc6a46490400a51ce
at /rustc/e631891f7ad40eac3ef58ec3c2b57ecd81e40615/library/std/src/panicking.rs:286:9
10: 0x7fb30775c1bc - std::panicking::rust_panic_with_hook::hec8b21fa74280350
at /rustc/e631891f7ad40eac3ef58ec3c2b57ecd81e40615/library/std/src/panicking.rs:688:13
11: 0x7fb30775bf57 - std::panicking::begin_panic_handler::{{closure}}::hfc7a6bbbe087d67f
at /rustc/e631891f7ad40eac3ef58ec3c2b57ecd81e40615/library/std/src/panicking.rs:579:13
12: 0x7fb3077592ec - std::sys_common::backtrace::__rust_end_short_backtrace::h9522cd483b462760
at /rustc/e631891f7ad40eac3ef58ec3c2b57ecd81e40615/library/std/src/sys_common/backtrace.rs:137:18
13: 0x7fb30775bc72 - rust_begin_unwind
at /rustc/e631891f7ad40eac3ef58ec3c2b57ecd81e40615/library/std/src/panicking.rs:575:5
14: 0x7fb3077b7cd3 - core::panicking::panic_fmt::hed336b84331644c6
at /rustc/e631891f7ad40eac3ef58ec3c2b57ecd81e40615/library/core/src/panicking.rs:65:14
15: 0x7fb3077b7e21 - core::panicking::panic_display::hfd9196fe7e39c556
at /rustc/e631891f7ad40eac3ef58ec3c2b57ecd81e40615/library/core/src/panicking.rs:139:5
16: 0x7fb3077b7dcb - core::panicking::panic_str::h690ea6362ec322ca
at /rustc/e631891f7ad40eac3ef58ec3c2b57ecd81e40615/library/core/src/panicking.rs:123:5
17: 0x7fb3077b7a46 - core::option::expect_failed::ha7492c08770f6013
at /rustc/e631891f7ad40eac3ef58ec3c2b57ecd81e40615/library/core/src/option.rs:1879:5
18: 0x55fef72a2d84 - rustdoc[c1dc24f96e9fc78e]::passes::collect_intra_doc_links::resolve_associated_trait_item
19: 0x55fef72a1ab0 - <rustdoc[c1dc24f96e9fc78e]::passes::collect_intra_doc_links::LinkCollector>::resolve_associated_item
20: 0x55fef729ff25 - <rustdoc[c1dc24f96e9fc78e]::passes::collect_intra_doc_links::LinkCollector>::resolve
21: 0x55fef72a47c3 - <rustdoc[c1dc24f96e9fc78e]::passes::collect_intra_doc_links::LinkCollector as rustdoc[c1dc24f96e9fc78e]::visit::DocVisitor>::visit_item
22: 0x55fef729e6e1 - rustdoc[c1dc24f96e9fc78e]::passes::collect_intra_doc_links::collect_intra_doc_links
23: 0x55fef7458b6d - <rustc_session[137af93febc05af8]::session::Session>::time::<rustdoc[c1dc24f96e9fc78e]::clean::types::Crate, rustdoc[c1dc24f96e9fc78e]::core::run_global_ctxt::{closure#7}>
24: 0x55fef7286730 - rustdoc[c1dc24f96e9fc78e]::core::run_global_ctxt
25: 0x55fef745b66b - <rustc_interface[c45a0c7151d607d6]::passes::QueryContext>::enter::<rustdoc[c1dc24f96e9fc78e]::main_args::{closure#1}::{closure#0}::{closure#1}, core[8ea5df1f30b7f766]::result::Result<(), rustc_errors[858123638ecad7e2]::ErrorGuaranteed>>
26: 0x55fef7337e44 - <rustc_interface[c45a0c7151d607d6]::interface::Compiler>::enter::<rustdoc[c1dc24f96e9fc78e]::main_args::{closure#1}::{closure#0}, core[8ea5df1f30b7f766]::result::Result<(), rustc_errors[858123638ecad7e2]::ErrorGuaranteed>>
27: 0x55fef7265b13 - std[772581ffc1b79bff]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[c45a0c7151d607d6]::util::run_in_thread_pool_with_globals<rustc_interface[c45a0c7151d607d6]::interface::run_compiler<core[8ea5df1f30b7f766]::result::Result<(), rustc_errors[858123638ecad7e2]::ErrorGuaranteed>, rustdoc[c1dc24f96e9fc78e]::main_args::{closure#1}>::{closure#0}, core[8ea5df1f30b7f766]::result::Result<(), rustc_errors[858123638ecad7e2]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[8ea5df1f30b7f766]::result::Result<(), rustc_errors[858123638ecad7e2]::ErrorGuaranteed>>
28: 0x55fef756b5e4 - <<std[772581ffc1b79bff]::thread::Builder>::spawn_unchecked_<rustc_interface[c45a0c7151d607d6]::util::run_in_thread_pool_with_globals<rustc_interface[c45a0c7151d607d6]::interface::run_compiler<core[8ea5df1f30b7f766]::result::Result<(), rustc_errors[858123638ecad7e2]::ErrorGuaranteed>, rustdoc[c1dc24f96e9fc78e]::main_args::{closure#1}>::{closure#0}, core[8ea5df1f30b7f766]::result::Result<(), rustc_errors[858123638ecad7e2]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[8ea5df1f30b7f766]::result::Result<(), rustc_errors[858123638ecad7e2]::ErrorGuaranteed>>::{closure#1} as core[8ea5df1f30b7f766]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
29: 0x7fb307765f73 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hb9beccc25c64a001
at /rustc/e631891f7ad40eac3ef58ec3c2b57ecd81e40615/library/alloc/src/boxed.rs:2000:9
30: 0x7fb307765f73 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hde98428e87ac1a81
at /rustc/e631891f7ad40eac3ef58ec3c2b57ecd81e40615/library/alloc/src/boxed.rs:2000:9
31: 0x7fb307765f73 - std::sys::unix::thread::Thread::new::thread_start::h2ef156d73deb51c1
at /rustc/e631891f7ad40eac3ef58ec3c2b57ecd81e40615/library/std/src/sys/unix/thread.rs:108:17
32: 0x7fb3074b0e86 - start_thread
33: 0x7fb307537c60 - __clone3
34: 0x0 - <unknown>
error: could not document `rustdoc-panic-repro`