Closed
Description
Problem
Cargo crashes when running cargo doc --target x86_64-fuchsia
Expected behavior: doesn't crash and produces documentation 😄
Steps
cargo init example
- Replace Cargo.toml with:
[package]
name = "example"
version = "0.0.1"
edition = "2018"
[dependencies."rand_6"]
package = "rand"
version = "0.6.5"
[dependencies."rand_7"]
package = "rand"
version = "0.7.2"
cargo +nightly doc --target=x86_64-fuchsia
Produces:
thread 'main' panicked at 'no entry found for key', src/tools/cargo/src/cargo/core/compiler/context/compilation_files.rs:324:9
stack backtrace:
0: 0x556606f338f7 - std::backtrace_rs::backtrace::libunwind::trace::h8bc78f7bc1f75bdb
at /rustc/04caa632dd10c2bf64b69524c7f9c4c30a436877/library/std/src/../../backtrace/src/backtrace/libunwind.rs:90:5
1: 0x556606f338f7 - std::backtrace_rs::backtrace::trace_unsynchronized::ha4c961c9576f95ba
at /rustc/04caa632dd10c2bf64b69524c7f9c4c30a436877/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
2: 0x556606f338f7 - std::sys_common::backtrace::_print_fmt::hc20cfdc233d6eb02
at /rustc/04caa632dd10c2bf64b69524c7f9c4c30a436877/library/std/src/sys_common/backtrace.rs:67:5
3: 0x556606f338f7 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h04bea14549780a0f
at /rustc/04caa632dd10c2bf64b69524c7f9c4c30a436877/library/std/src/sys_common/backtrace.rs:46:22
4: 0x556606f5abbc - core::fmt::write::h3868db8542c90941
at /rustc/04caa632dd10c2bf64b69524c7f9c4c30a436877/library/core/src/fmt/mod.rs:1096:17
5: 0x556606f2ae42 - std::io::Write::write_fmt::h55dd75636eef6a5c
at /rustc/04caa632dd10c2bf64b69524c7f9c4c30a436877/library/std/src/io/mod.rs:1568:15
6: 0x556606f36915 - std::sys_common::backtrace::_print::h6439e8525077c7da
at /rustc/04caa632dd10c2bf64b69524c7f9c4c30a436877/library/std/src/sys_common/backtrace.rs:49:5
7: 0x556606f36915 - std::sys_common::backtrace::print::h02b685f728ce3931
at /rustc/04caa632dd10c2bf64b69524c7f9c4c30a436877/library/std/src/sys_common/backtrace.rs:36:9
8: 0x556606f36915 - std::panicking::default_hook::{{closure}}::h7c29625065fafae1
at /rustc/04caa632dd10c2bf64b69524c7f9c4c30a436877/library/std/src/panicking.rs:208:50
9: 0x556606f36473 - std::panicking::default_hook::hba441710bb71f4d5
at /rustc/04caa632dd10c2bf64b69524c7f9c4c30a436877/library/std/src/panicking.rs:225:9
10: 0x556606f370b1 - std::panicking::rust_panic_with_hook::ha936eb00e51bc4d9
at /rustc/04caa632dd10c2bf64b69524c7f9c4c30a436877/library/std/src/panicking.rs:591:17
11: 0x556606f36bf7 - std::panicking::begin_panic_handler::{{closure}}::hcd15140e0238536e
at /rustc/04caa632dd10c2bf64b69524c7f9c4c30a436877/library/std/src/panicking.rs:497:13
12: 0x556606f33dbc - std::sys_common::backtrace::__rust_end_short_backtrace::hb13a021bb64823a1
at /rustc/04caa632dd10c2bf64b69524c7f9c4c30a436877/library/std/src/sys_common/backtrace.rs:141:18
13: 0x556606f36b59 - rust_begin_unwind
at /rustc/04caa632dd10c2bf64b69524c7f9c4c30a436877/library/std/src/panicking.rs:493:5
14: 0x556606f592a1 - core::panicking::panic_fmt::h20225113c4a2f8fd
at /rustc/04caa632dd10c2bf64b69524c7f9c4c30a436877/library/core/src/panicking.rs:92:14
15: 0x556606f59033 - core::option::expect_failed::h8be1ca96ca0d69ca
at /rustc/04caa632dd10c2bf64b69524c7f9c4c30a436877/library/core/src/option.rs:1292:5
16: 0x5566066ada0e - cargo::core::compiler::context::Context::outputs::haa957a7b0e56a222
17: 0x5566066a98e8 - cargo::core::compiler::context::Context::compile::h619f9454e2bb6dde
18: 0x5566068d840e - cargo::ops::cargo_compile::compile_ws::h1c44fcf7dadb06cb
19: 0x5566068d815d - cargo::ops::cargo_compile::compile::h68cd9fa4cc2c1bbf
20: 0x5566068e5e78 - cargo::ops::cargo_doc::doc::h19eb2ebb797f577c
21: 0x5566065a7647 - cargo::commands::doc::exec::h953a6e3d8d6ae36b
22: 0x55660657a7b2 - cargo::cli::main::h92989bace6d3806b
23: 0x5566065e2be8 - cargo::main::ha1183bac4403fd4f
24: 0x5566065d4116 - std::sys_common::backtrace::__rust_begin_short_backtrace::h03f0492d76360063
25: 0x5566065d413c - std::rt::lang_start::{{closure}}::hbe0ff8cdce754e4d
26: 0x556606f375c7 - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::h7c92107c3c98a949
at /rustc/04caa632dd10c2bf64b69524c7f9c4c30a436877/library/core/src/ops/function.rs:259:13
27: 0x556606f375c7 - std::panicking::try::do_call::h7454c57e8fbf0cc1
at /rustc/04caa632dd10c2bf64b69524c7f9c4c30a436877/library/std/src/panicking.rs:379:40
28: 0x556606f375c7 - std::panicking::try::he71cdc15ed83b5ec
at /rustc/04caa632dd10c2bf64b69524c7f9c4c30a436877/library/std/src/panicking.rs:343:19
29: 0x556606f375c7 - std::panic::catch_unwind::hfc08ddb043e6e18c
at /rustc/04caa632dd10c2bf64b69524c7f9c4c30a436877/library/std/src/panic.rs:410:14
30: 0x556606f375c7 - std::rt::lang_start_internal::he4958117ec6901fd
at /rustc/04caa632dd10c2bf64b69524c7f9c4c30a436877/library/std/src/rt.rs:51:25
31: 0x5566065e4f35 - main
32: 0x7fc4d5088d0a - __libc_start_main
33: 0x55660656e071 - <unknown>
Notes
Output of cargo version
:
$ cargo +nightly version
cargo 1.51.0-nightly (c3abcfe8a 2021-01-25)
rustup +nightly target add x86_64-fuchsia
is probably required to get it to actually work, but does not seem necessary to reproduce the bug.
Also, it works fine on stable:
$ cargo +stable doc --target=x86_64-fuchsia
Finished dev [unoptimized + debuginfo] target(s) in 6.43s
$ cargo +stable version
cargo 1.49.0 (d00d64df9 2020-12-05)
So this is a regression.
The original failure I saw did not involve rename imports, but I switched to rename imports to show that just having both versions of rand in the graph is enough to trigger the problem. The original example I saw depended on rand 0.6 directly and tempfile which brought in rand 0.7.