rust-lang / rust-lang/rust

[ICE]: rustc_metadata panic on android

Open
#152,666 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

C-bug I-ICE O-termux T-compiler
Dominant language
Rust
Stars
119k
Forks
16.2k
PR merge metrics
PR metrics pending

Description

Hello, I encountered the error while trying to run "install cargo trunk" so none of the code is mine.

The error happened while compiling hickory-proto

The platform is unusual as it is termux on Android.

Meta

rustc --version --verbose:

~ $ rustc --version --verbose
rustc 1.93.0 (254b59607 2026-01-19) (built from a source tarball)
binary: rustc
commit-hash: 254b59607d4417e9dffbc307138ae5c86280fe4c
commit-date: 2026-01-19
host: aarch64-linux-android
release: 1.93.0
LLVM version: 21.1.8
Error output
thread 'rustc' (18223) panicked at compiler/rustc_metadata/src/rmeta/decoder.rs:993:31:
called `Option::unwrap()` on a `None` value

error: 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.93.0 (254b59607 2026-01-19) (built from a source tarball) running on aarch64-linux-android

note: compiler flags: --crate-type lib -C opt-level=3 -C panic=abort -C linker-plugin-lto -C codegen-units=1 -C strip=debuginfo

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

query stack during panic:
#0 [resolver_for_lowering_raw] getting the resolver for lowering
end of query stack
error: could not compile `hickory-proto` (lib)

Caused by:
  process didn't exit successfully: `rustc --crate-name hickory_proto --edition=2021 /data/data/com.termux/files/home/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hickory-proto-0.25.2/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --diagnostic-width=62 --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C panic=abort -C linker-plugin-lto -C codegen-units=1 --warn=unexpected_cfgs --check-cfg 'cfg(nightly)' --cfg 'feature="futures-io"' --cfg 'feature="std"' --cfg 'feature="tokio"' --check-cfg 'cfg(docsrs,test)' --check-cfg 'cfg(feature, values("__dnssec", "__h3", "__https", "__quic", "__tls", "backtrace", "default", "dnssec-aws-lc-rs", "dnssec-ring", "futures-io", "h3-aws-lc-rs", "h3-ring", "https-aws-lc-rs", "https-ring", "mdns", "no-std-rand", "quic-aws-lc-rs", "quic-ring", "rustls-platform-verifier", "serde", "socket2", "std", "testing", "text-parsing", "tls-aws-lc-rs", "tls-ring", "tokio", "wasm-bindgen", "webpki-roots"))' -C metadata=869f9e66c303d6d9 -C extra-filename=-b94fca3f9ccc723c --out-dir /data/data/com.termux/files/usr/tmp/cargo-installr9t39f/release/deps -C strip=debuginfo -L dependency=/data/data/com.termux/files/usr/tmp/cargo-installr9t39f/release/deps --extern async_trait=/data/data/com.termux/files/usr/tmp/cargo-installr9t39f/release/deps/libasync_trait-952f9bb5946dc07a.so --extern cfg_if=/data/data/com.termux/files/usr/tmp/cargo-installr9t39f/release/deps/libcfg_if-041fa3b3d3816aa6.rmeta --extern data_encoding=/data/data/com.termux/files/usr/tmp/cargo-installr9t39f/release/deps/libdata_encoding-3fe80021620fe3ec.rmeta --extern enum_as_inner=/data/data/com.termux/files/usr/tmp/cargo-installr9t39f/release/deps/libenum_as_inner-c16f0cf073549f95.so --extern futures_channel=/data/data/com.termux/files/usr/tmp/cargo-installr9t39f/release/deps/libfutures_channel-7ad959d85a2c3dde.rmeta --extern futures_io=/data/data/com.termux/files/usr/tmp/cargo-installr9t39f/release/deps/libfutures_io-2c75eff01628fa0f.rmeta --extern futures_util=/data/data/com.termux/files/usr/tmp/cargo-installr9t39f/release/deps/libfutures_util-219462ccaf31e9f4.rmeta --extern idna=/data/data/com.termux/files/usr/tmp/cargo-installr9t39f/release/deps/libidna-50f696bbe2195618.rmeta --extern ipnet=/data/data/com.termux/files/usr/tmp/cargo-installr9t39f/release/deps/libipnet-9613b3ae9741c573.rmeta --extern once_cell=/data/data/com.termux/files/usr/tmp/cargo-installr9t39f/release/deps/libonce_cell-e2cdb9621618cb02.rmeta --extern rand=/data/data/com.termux/files/usr/tmp/cargo-installr9t39f/release/deps/librand-fcf298be791504ef.rmeta --extern thiserror=/data/data/com.termux/files/usr/tmp/cargo-installr9t39f/release/deps/libthiserror-7536c1e234d8bc13.rmeta --extern tinyvec=/data/data/com.termux/files/usr/tmp/cargo-installr9t39f/release/deps/libtinyvec-f6567d46b7001098.rmeta --extern tokio=/data/data/com.termux/files/usr/tmp/cargo-installr9t39f/release/deps/libtokio-72130af7dd8c4e16.rmeta --extern tracing=/data/data/com.termux/files/usr/tmp/cargo-installr9t39f/release/deps/libtracing-e5fb26a4ad1bd9e0.rmeta --extern url=/data/data/com.termux/files/usr/tmp/cargo-installr9t39f/release/deps/liburl-580235922df475ce.rmeta --cap-lints allow` (exit status: 101)
Backtrace


stack backtrace:
   0:       0x78600a4a9c - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::hfa00a66149f32d8f
   1:       0x78600e7ec0 - core::fmt::write::h31b0977f5443fc0b
   2:       0x78600a8504 - <unknown>
   3:       0x7860083ae4 - <unknown>
   4:       0x786008391c - std::panicking::default_hook::hcc5be7f31b94785f
   5:       0x785cfcffa0 - <unknown>
   6:       0x7860083dfc - std::panicking::panic_with_hook::h4fd0bcc1bae66b70
   7:       0x786009a7a4 - <unknown>
   8:       0x7860098994 - <unknown>
   9:       0x7860074d44 - __rustc[881eff9798cad629]::rust_begin_unwind
  10:       0x78600ecea0 - core::panicking::panic_fmt::h27113979cc7bf589
  11:       0x78600ece78 - core::panicking::panic::he8c98dbc071e34c6
  12:       0x7860106ca8 - core::option::unwrap_failed::h57341bcdc186bdea
  13:       0x785f3e1914 - <rustc_metadata[69212babd6ff512]::creader::CStore>::load_macro_untracked
  14:       0x785e5077c0 - <unknown>
  15:       0x785e52fbb0 - <unknown>
  16:       0x785e53ca50 - <rustc_resolve[d03e2eb8c82e81ee]::Resolver as rustc_expand[b86d1cc24c3ec3fa]::base::ResolverExpand>::resolve_macro_invocation
  17:       0x785f61657c - <rustc_expand[b86d1cc24c3ec3fa]::expand::MacroExpander>::fully_expand_fragment
  18:       0x785f61534c - <rustc_expand[b86d1cc24c3ec3fa]::expand::MacroExpander>::expand_crate
  19:       0x785d1d8df8 - <unknown>
  20:       0x785d170f00 - rustc_interface[8b6722a5913450ec]::passes::resolver_for_lowering_raw
  21:       0x785ed30c14 - <unknown>
  22:       0x785ecf837c - <unknown>
  23:       0x785eab7b20 - rustc_query_system[f0c7338d455e6220]::query::plumbing::try_execute_query::<rustc_query_impl[a37a32c06226f705]::DynamicConfig<rustc_query_system[f0c7338d455e6220]::query::caches::SingleCache<rustc_middle[f7b2121bb64ab64e]::query::erase::Erased<[u8; 16usize]>>, false, false, false>, rustc_query_impl[a37a32c06226f705]::plumbing::QueryCtxt, false>
  24:       0x785eb2ac6c - <unknown>
  25:       0x7860029564 - <unknown>
  26:       0x78600295c0 - rust_psm_on_stack
  27:       0x7860029410 - stacker[a4e841f9cea078c0]::_grow
  28:       0x785ebe10b0 - <unknown>
  29:       0x785fa03150 - <rustc_middle[f7b2121bb64ab64e]::ty::context::TyCtxt>::resolver_for_lowering
  30:       0x785cf5c418 - <unknown>
  31:       0x785cf93bb4 - <unknown>
  32:       0x785cf7db90 - <unknown>
  33:       0x785cf5aedc - <unknown>
  34:       0x785d001b0c - <unknown>
  35:       0x785cf7fce8 - <unknown>
  36:       0x78600b1bb8 - <unknown>
  37:       0x784a162654 - _ZL15__pthread_startPv
  38:       0x784a0fc000 - __start_thread


Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the panic by running the reported cargo install trunk build for hickory-proto on Termux Android, then inspect compiler/rustc_metadata/src/rmeta/decoder.rs:993 and CStore::load_macro_untracked from the backtrace. Determine why the metadata lookup unwraps None on aarch64-linux-android; done means the reproduction no longer causes the rustc panic.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
compilers, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.