Skip to content

ICE when checking aws-config 0.11.0 for intra-doc links #96707

Closed
@Michael-F-Bryan

Description

@Michael-F-Bryan

Code

The compiler encounters an ICE while trying to document the aws-config crate. In particular, it seems to panic with a "no entry found for key" while collecting intra-doc links.

Steps to reproduce:

$ cd /tmp && cargo new repro && cd repro
     Created binary (application) `repro` package
$ cargo add aws-config
    Updating crates.io index
      Adding aws-config v0.11.0 to dependencies.
             Features:
             + rt-tokio
             + rustls
             - native-tls
$ cargo doc
    Updating crates.io index
  Downloaded tokio v1.18.1
  Downloaded 1 crate (572.3 KB) in 1.22s
   Compiling libc v0.2.125
  ...
 Documenting aws-config v0.11.0
(ICE message & backtrace)

You can check the failed docs.rs build for more details on reproducing the issue.

Meta

$ rustc --version --verbose
rustc 1.62.0-nightly (e1b71feb5 2022-05-03)
binary: rustc
commit-hash: e1b71feb592ba64805689e2b15b9fa570182c442
commit-date: 2022-05-03
host: x86_64-unknown-linux-gnu
release: 1.62.0-nightly
LLVM version: 14.0.1

Error output

Backtrace

$ RUST_BACKTRACE=full cargo doc --verbose
       Fresh autocfg v1.1.0
       Fresh cc v1.0.73
       Fresh unicode-xid v0.2.3
       Fresh cfg-if v1.0.0
       Fresh once_cell v1.10.0
       Fresh bytes v1.1.0
       Fresh pin-project-lite v0.2.9
       Fresh itoa v1.0.1
       Fresh lazy_static v1.4.0
       Fresh pin-utils v0.1.0
       Fresh slab v0.4.6
       Fresh untrusted v0.7.1
       Fresh spin v0.5.2
       Fresh fnv v1.0.7
       Fresh hashbrown v0.11.2
       Fresh num_threads v0.1.5
       Fresh futures-sink v0.3.21
       Fresh tower-service v0.3.1
       Fresh try-lock v0.2.3
       Fresh ryu v1.0.9
       Fresh httpdate v1.0.2
       Fresh percent-encoding v2.1.0
       Fresh either v1.6.1
       Fresh base64 v0.13.0
       Fresh openssl-probe v0.1.5
       Fresh tower-layer v0.3.1
       Fresh fastrand v1.7.0
       Fresh zeroize v1.5.5
       Fresh regex-syntax v0.6.25
       Fresh matches v0.1.9
       Fresh hex v0.4.3
       Fresh xmlparser v0.13.3
       Fresh urlencoding v2.1.0
       Fresh tracing-core v0.1.26
       Fresh http v0.2.7
       Fresh bytes-utils v0.1.2
       Fresh libc v0.2.125
       Fresh proc-macro2 v1.0.37
       Fresh log v0.4.17
       Fresh memchr v2.5.0
       Fresh form_urlencoded v1.0.1
       Fresh futures-core v0.3.21
       Fresh semver v1.0.9
       Fresh futures-task v0.3.21
       Fresh http-body v0.4.4
       Fresh httparse v1.7.1
       Fresh quote v1.0.18
       Fresh socket2 v0.4.4
       Fresh mio v0.8.2
       Fresh ring v0.16.20
       Fresh num-traits v0.2.15
       Fresh time v0.3.9
       Fresh indexmap v1.8.1
       Fresh want v0.3.0
       Fresh aho-corasick v0.7.18
       Fresh rustc_version v0.4.0
       Fresh futures-channel v0.3.21
       Fresh syn v1.0.92
       Fresh tokio v1.18.1
       Fresh num-integer v0.1.45
       Fresh sct v0.6.1
       Fresh webpki v0.21.4
       Fresh regex v1.5.5
       Fresh tracing-attributes v0.1.21
       Fresh futures-macro v0.3.21
       Fresh aws-smithy-types v0.41.0
       Fresh pin-project-internal v1.0.10
       Fresh rustls v0.19.1
       Fresh ct-logs v0.8.0
       Fresh tokio-stream v0.1.8
       Fresh thiserror-impl v1.0.31
       Fresh futures-util v0.3.21
       Fresh tracing v0.1.34
       Fresh pin-project v1.0.10
       Fresh tokio-rustls v0.22.0
       Fresh rustls-native-certs v0.5.0
       Fresh thiserror v1.0.31
       Fresh aws-smithy-json v0.41.0
       Fresh aws-smithy-query v0.41.0
       Fresh tokio-util v0.7.1
       Fresh tower v0.4.12
       Fresh aws-smithy-async v0.41.0
       Fresh aws-smithy-xml v0.41.0
       Fresh h2 v0.3.13
       Fresh hyper v0.14.18
       Fresh aws-smithy-http v0.41.0
       Fresh hyper-rustls v0.22.1
       Fresh aws-smithy-http-tower v0.41.0
       Fresh aws-sigv4 v0.11.0
       Fresh aws-smithy-client v0.41.0
       Fresh aws-types v0.11.0
       Fresh aws-endpoint v0.11.0
       Fresh aws-sig-auth v0.11.0
       Fresh aws-http v0.11.0
       Fresh aws-sdk-sts v0.11.0
       Fresh aws-sdk-sso v0.11.0
 Documenting aws-config v0.11.0
     Running `rustdoc --edition=2021 --crate-type lib --crate-name aws_config /home/consulting/.cargo/registry/src/github.com-1ecc6299db9ec823/aws-config-0.11.0/src/lib.rs --cap-lints allow -o /tmp/repro/target/doc --cfg 'feature="default"' --cfg 'feature="rt-tokio"' --cfg 'feature="rustls"' --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat -C metadata=bacdc3d237cda790 -L dependency=/tmp/repro/target/debug/deps --extern aws_http=/tmp/repro/target/debug/deps/libaws_http-a75437d7aa53b188.rmeta --extern aws_sdk_sso=/tmp/repro/target/debug/deps/libaws_sdk_sso-b50f67496acf538d.rmeta --extern aws_sdk_sts=/tmp/repro/target/debug/deps/libaws_sdk_sts-c61f26fed33b2cf9.rmeta --extern aws_smithy_async=/tmp/repro/target/debug/deps/libaws_smithy_async-f0d4e15c58e7fcb2.rmeta --extern aws_smithy_client=/tmp/repro/target/debug/deps/libaws_smithy_client-d2cddce08c778121.rmeta --extern aws_smithy_http=/tmp/repro/target/debug/deps/libaws_smithy_http-8025f1541a227094.rmeta --extern aws_smithy_http_tower=/tmp/repro/target/debug/deps/libaws_smithy_http_tower-67f6b7f6a9fbf874.rmeta --extern aws_smithy_json=/tmp/repro/target/debug/deps/libaws_smithy_json-193c78e768197f5a.rmeta --extern aws_smithy_types=/tmp/repro/target/debug/deps/libaws_smithy_types-930ef2b6f41fa1bc.rmeta --extern aws_types=/tmp/repro/target/debug/deps/libaws_types-e902643891b20351.rmeta --extern bytes=/tmp/repro/target/debug/deps/libbytes-0b6620405fcf1713.rmeta --extern hex=/tmp/repro/target/debug/deps/libhex-52738f6114d4bb1b.rmeta --extern http=/tmp/repro/target/debug/deps/libhttp-ead0e0fbbcb95e90.rmeta --extern hyper=/tmp/repro/target/debug/deps/libhyper-d0796b2f14edb817.rmeta --extern ring=/tmp/repro/target/debug/deps/libring-a7a32c6b54df5d6d.rmeta --extern tokio=/tmp/repro/target/debug/deps/libtokio-db1778ba3e643e4e.rmeta --extern tower=/tmp/repro/target/debug/deps/libtower-dfff9667aa5b3fcd.rmeta --extern tracing=/tmp/repro/target/debug/deps/libtracing-839386731b568d45.rmeta --extern zeroize=/tmp/repro/target/debug/deps/libzeroize-b63ab9c219962735.rmeta --crate-version 0.11.0`
thread 'rustc' panicked at 'no entry found for key', src/librustdoc/passes/collect_intra_doc_links.rs:989:16
stack backtrace:
   0:     0x7f221909df8d - std::backtrace_rs::backtrace::libunwind::trace::h4805a893eb42a372
                               at /rustc/e1b71feb592ba64805689e2b15b9fa570182c442/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
   1:     0x7f221909df8d - std::backtrace_rs::backtrace::trace_unsynchronized::h910528a06e2a2fa8
                               at /rustc/e1b71feb592ba64805689e2b15b9fa570182c442/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x7f221909df8d - std::sys_common::backtrace::_print_fmt::h9a10ce045ad67332
                               at /rustc/e1b71feb592ba64805689e2b15b9fa570182c442/library/std/src/sys_common/backtrace.rs:66:5
   3:     0x7f221909df8d - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::ha45d06e3654760fe
                               at /rustc/e1b71feb592ba64805689e2b15b9fa570182c442/library/std/src/sys_common/backtrace.rs:45:22
   4:     0x7f22190f9ccc - core::fmt::write::h1a75bc28a77512a0
                               at /rustc/e1b71feb592ba64805689e2b15b9fa570182c442/library/core/src/fmt/mod.rs:1194:17
   5:     0x7f221908f681 - std::io::Write::write_fmt::h7f44971eeecf029b
                               at /rustc/e1b71feb592ba64805689e2b15b9fa570182c442/library/std/src/io/mod.rs:1655:15
   6:     0x7f22190a0ca5 - std::sys_common::backtrace::_print::h8dd5e5780587d338
                               at /rustc/e1b71feb592ba64805689e2b15b9fa570182c442/library/std/src/sys_common/backtrace.rs:48:5
   7:     0x7f22190a0ca5 - std::sys_common::backtrace::print::h49bbeed1a1df5f1b
                               at /rustc/e1b71feb592ba64805689e2b15b9fa570182c442/library/std/src/sys_common/backtrace.rs:35:9
   8:     0x7f22190a0ca5 - std::panicking::default_hook::{{closure}}::h5a18580d2a58bd32
                               at /rustc/e1b71feb592ba64805689e2b15b9fa570182c442/library/std/src/panicking.rs:295:22
   9:     0x7f22190a0919 - std::panicking::default_hook::h41d6b75fb0d762fc
                               at /rustc/e1b71feb592ba64805689e2b15b9fa570182c442/library/std/src/panicking.rs:314:9
  10:     0x7f22198cc211 - rustc_driver[125040c6eb523a71]::DEFAULT_HOOK::{closure#0}::{closure#0}
  11:     0x7f22190a1476 - std::panicking::rust_panic_with_hook::hf4c97d7be57c7d62
                               at /rustc/e1b71feb592ba64805689e2b15b9fa570182c442/library/std/src/panicking.rs:702:17
  12:     0x7f22190a1277 - std::panicking::begin_panic_handler::{{closure}}::hbbe19efe0f32bb48
                               at /rustc/e1b71feb592ba64805689e2b15b9fa570182c442/library/std/src/panicking.rs:588:13
  13:     0x7f221909e444 - std::sys_common::backtrace::__rust_end_short_backtrace::h5663e74b95169550
                               at /rustc/e1b71feb592ba64805689e2b15b9fa570182c442/library/std/src/sys_common/backtrace.rs:138:18
  14:     0x7f22190a0fa9 - rust_begin_unwind
                               at /rustc/e1b71feb592ba64805689e2b15b9fa570182c442/library/std/src/panicking.rs:584:5
  15:     0x7f2219066273 - core::panicking::panic_fmt::h41e337a225a8b235
                               at /rustc/e1b71feb592ba64805689e2b15b9fa570182c442/library/core/src/panicking.rs:142:14
  16:     0x7f22190f6931 - core::panicking::panic_display::h06793ac317a7ffaa
                               at /rustc/e1b71feb592ba64805689e2b15b9fa570182c442/library/core/src/panicking.rs:72:5
  17:     0x7f22190f68db - core::panicking::panic_str::h52cdda5d90c3650f
                               at /rustc/e1b71feb592ba64805689e2b15b9fa570182c442/library/core/src/panicking.rs:56:5
  18:     0x7f22190660e6 - core::option::expect_failed::hbc6f1e1f4f7e4bb2
                               at /rustc/e1b71feb592ba64805689e2b15b9fa570182c442/library/core/src/option.rs:1855:5
  19:     0x55727dab17f9 - rustdoc[a9348917d5ac8b3]::passes::collect_intra_doc_links::resolve_associated_trait_item
  20:     0x55727daaff9e - <rustdoc[a9348917d5ac8b3]::passes::collect_intra_doc_links::LinkCollector>::resolve_associated_item
  21:     0x55727daad193 - <rustdoc[a9348917d5ac8b3]::passes::collect_intra_doc_links::LinkCollector>::resolve
  22:     0x55727dab3301 - <rustdoc[a9348917d5ac8b3]::passes::collect_intra_doc_links::LinkCollector as rustdoc[a9348917d5ac8b3]::visit::DocVisitor>::visit_item
  23:     0x55727dac5a8a - <rustdoc[a9348917d5ac8b3]::passes::collect_intra_doc_links::LinkCollector as rustdoc[a9348917d5ac8b3]::visit::DocVisitor>::visit_inner_recur
  24:     0x55727dab6d03 - <rustdoc[a9348917d5ac8b3]::passes::collect_intra_doc_links::LinkCollector as rustdoc[a9348917d5ac8b3]::visit::DocVisitor>::visit_item
  25:     0x55727dac5b2a - <rustdoc[a9348917d5ac8b3]::passes::collect_intra_doc_links::LinkCollector as rustdoc[a9348917d5ac8b3]::visit::DocVisitor>::visit_inner_recur
  26:     0x55727dab6ce8 - <rustdoc[a9348917d5ac8b3]::passes::collect_intra_doc_links::LinkCollector as rustdoc[a9348917d5ac8b3]::visit::DocVisitor>::visit_item
  27:     0x55727dac5b2a - <rustdoc[a9348917d5ac8b3]::passes::collect_intra_doc_links::LinkCollector as rustdoc[a9348917d5ac8b3]::visit::DocVisitor>::visit_inner_recur
  28:     0x55727dab6ce8 - <rustdoc[a9348917d5ac8b3]::passes::collect_intra_doc_links::LinkCollector as rustdoc[a9348917d5ac8b3]::visit::DocVisitor>::visit_item
  29:     0x55727daab48c - rustdoc[a9348917d5ac8b3]::passes::collect_intra_doc_links::collect_intra_doc_links
  30:     0x55727db1e0f2 - <rustc_interface[193ba4fb4117b07c]::passes::QueryContext>::enter::<rustdoc[a9348917d5ac8b3]::main_options::{closure#0}::{closure#0}::{closure#1}, core[6da350c98d2740e7]::result::Result<(), rustc_errors[7bd59ff38442a38e]::ErrorGuaranteed>>::{closure#0}
  31:     0x55727dafff10 - <rustc_interface[193ba4fb4117b07c]::passes::QueryContext>::enter::<rustdoc[a9348917d5ac8b3]::main_options::{closure#0}::{closure#0}::{closure#1}, core[6da350c98d2740e7]::result::Result<(), rustc_errors[7bd59ff38442a38e]::ErrorGuaranteed>>
  32:     0x55727da4d55f - <rustc_interface[193ba4fb4117b07c]::interface::Compiler>::enter::<rustdoc[a9348917d5ac8b3]::main_options::{closure#0}::{closure#0}, core[6da350c98d2740e7]::result::Result<(), rustc_errors[7bd59ff38442a38e]::ErrorGuaranteed>>
  33:     0x55727d8ccb3a - rustc_span[141e2097171f6fae]::with_source_map::<core[6da350c98d2740e7]::result::Result<(), rustc_errors[7bd59ff38442a38e]::ErrorGuaranteed>, rustc_interface[193ba4fb4117b07c]::interface::create_compiler_and_run<core[6da350c98d2740e7]::result::Result<(), rustc_errors[7bd59ff38442a38e]::ErrorGuaranteed>, rustdoc[a9348917d5ac8b3]::main_options::{closure#0}>::{closure#1}>
  34:     0x55727da4f6b4 - rustc_interface[193ba4fb4117b07c]::interface::create_compiler_and_run::<core[6da350c98d2740e7]::result::Result<(), rustc_errors[7bd59ff38442a38e]::ErrorGuaranteed>, rustdoc[a9348917d5ac8b3]::main_options::{closure#0}>
  35:     0x55727d8ce855 - <scoped_tls[ea6fdb843fe953c6]::ScopedKey<rustc_span[141e2097171f6fae]::SessionGlobals>>::set::<rustdoc[a9348917d5ac8b3]::main_args::{closure#0}, core[6da350c98d2740e7]::result::Result<(), rustc_errors[7bd59ff38442a38e]::ErrorGuaranteed>>
  36:     0x55727da7577f - std[e0513a75ea4384d6]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[193ba4fb4117b07c]::util::run_in_thread_pool_with_globals<rustdoc[a9348917d5ac8b3]::main_args::{closure#0}, core[6da350c98d2740e7]::result::Result<(), rustc_errors[7bd59ff38442a38e]::ErrorGuaranteed>>::{closure#0}, core[6da350c98d2740e7]::result::Result<(), rustc_errors[7bd59ff38442a38e]::ErrorGuaranteed>>
  37:     0x55727db200a9 - <<std[e0513a75ea4384d6]::thread::Builder>::spawn_unchecked_<rustc_interface[193ba4fb4117b07c]::util::run_in_thread_pool_with_globals<rustdoc[a9348917d5ac8b3]::main_args::{closure#0}, core[6da350c98d2740e7]::result::Result<(), rustc_errors[7bd59ff38442a38e]::ErrorGuaranteed>>::{closure#0}, core[6da350c98d2740e7]::result::Result<(), rustc_errors[7bd59ff38442a38e]::ErrorGuaranteed>>::{closure#1} as core[6da350c98d2740e7]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  38:     0x7f22190ab3c3 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hafb604b842244d6f
                               at /rustc/e1b71feb592ba64805689e2b15b9fa570182c442/library/alloc/src/boxed.rs:1866:9
  39:     0x7f22190ab3c3 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hb72aee8e2be83316
                               at /rustc/e1b71feb592ba64805689e2b15b9fa570182c442/library/alloc/src/boxed.rs:1866:9
  40:     0x7f22190ab3c3 - std::sys::unix::thread::Thread::new::thread_start::hc6933a96c3e9c25d
                               at /rustc/e1b71feb592ba64805689e2b15b9fa570182c442/library/std/src/sys/unix/thread.rs:108:17
  41:     0x7f2218d9b5c2 - start_thread
  42:     0x7f2218e20584 - __clone
  43:                0x0 - <unknown>

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/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md

note: rustc 1.62.0-nightly (e1b71feb5 2022-05-03) running on x86_64-unknown-linux-gnu

note: compiler flags: --crate-type lib

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

query stack during panic:
end of query stack
error: could not document `aws-config`

Caused by:
  process didn't exit successfully: `rustdoc --edition=2021 --crate-type lib --crate-name aws_config /home/consulting/.cargo/registry/src/github.com-1ecc6299db9ec823/aws-config-0.11.0/src/lib.rs --cap-lints allow -o /tmp/repro/target/doc --cfg 'feature="default"' --cfg 'feature="rt-tokio"' --cfg 'feature="rustls"' --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat -C metadata=bacdc3d237cda790 -L dependency=/tmp/repro/target/debug/deps --extern aws_http=/tmp/repro/target/debug/deps/libaws_http-a75437d7aa53b188.rmeta --extern aws_sdk_sso=/tmp/repro/target/debug/deps/libaws_sdk_sso-b50f67496acf538d.rmeta --extern aws_sdk_sts=/tmp/repro/target/debug/deps/libaws_sdk_sts-c61f26fed33b2cf9.rmeta --extern aws_smithy_async=/tmp/repro/target/debug/deps/libaws_smithy_async-f0d4e15c58e7fcb2.rmeta --extern aws_smithy_client=/tmp/repro/target/debug/deps/libaws_smithy_client-d2cddce08c778121.rmeta --extern aws_smithy_http=/tmp/repro/target/debug/deps/libaws_smithy_http-8025f1541a227094.rmeta --extern aws_smithy_http_tower=/tmp/repro/target/debug/deps/libaws_smithy_http_tower-67f6b7f6a9fbf874.rmeta --extern aws_smithy_json=/tmp/repro/target/debug/deps/libaws_smithy_json-193c78e768197f5a.rmeta --extern aws_smithy_types=/tmp/repro/target/debug/deps/libaws_smithy_types-930ef2b6f41fa1bc.rmeta --extern aws_types=/tmp/repro/target/debug/deps/libaws_types-e902643891b20351.rmeta --extern bytes=/tmp/repro/target/debug/deps/libbytes-0b6620405fcf1713.rmeta --extern hex=/tmp/repro/target/debug/deps/libhex-52738f6114d4bb1b.rmeta --extern http=/tmp/repro/target/debug/deps/libhttp-ead0e0fbbcb95e90.rmeta --extern hyper=/tmp/repro/target/debug/deps/libhyper-d0796b2f14edb817.rmeta --extern ring=/tmp/repro/target/debug/deps/libring-a7a32c6b54df5d6d.rmeta --extern tokio=/tmp/repro/target/debug/deps/libtokio-db1778ba3e643e4e.rmeta --extern tower=/tmp/repro/target/debug/deps/libtower-dfff9667aa5b3fcd.rmeta --extern tracing=/tmp/repro/target/debug/deps/libtracing-839386731b568d45.rmeta --extern zeroize=/tmp/repro/target/debug/deps/libzeroize-b63ab9c219962735.rmeta --crate-version 0.11.0` (exit status: 101)

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-resolveArea: Name/path resolution done by `rustc_resolve` specificallyC-bugCategory: This is a bug.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️T-rustdocRelevant to the rustdoc 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