rust-lang / rust-lang/rust

[ICE]: Compiling benches for ntex-mqtt based project: /compiler/rustc_const_eval/src/interpret/discriminant.rs:128:93: called `Option::unwrap()` on a `None` value

Open
#153,933 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

C-bug I-ICE S-needs-repro T-compiler
Dominant language
Rust
Stars
119k
Forks
16.1k
PR merge metrics
PR metrics pending

Description

Code

Oh dear, this will be very hard to find the exact place of it :(

Meta

rustc --version --verbose:

rustc 1.96.0-nightly (1d8897a4e 2026-03-13) running on x86_64-unknown-linux-gnu
compiler flags: --crate-type lib -C opt-level=3 -C linker-plugin-lto -C codegen-units=1 -C strip=debuginfo
Error output
62.26    Compiling ntex-mqtt v7.6.0
63.91    Compiling ipnet v2.12.0
67.13
67.13 thread 'rustc' (3624) panicked at /rustc-dev/1d8897a4e88051480b36c501e66809425c6e08ad/compiler/rustc_const_eval/src/interpret/discriminant.rs:128:93:
67.13 called `Option::unwrap()` on a `None` value
67.13 stack backtrace:
67.15    0:     0x7fd2d853371b - <<std[1c12824126ab204a]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[86029f731b087684]::fmt::Display>::fmt
67.15    1:     0x7fd2d8c1ccc8 - core[86029f731b087684]::fmt::write
67.15    2:     0x7fd2d854a726 - <std[1c12824126ab204a]::sys::stdio::unix::Stderr as std[1c12824126ab204a]::io::Write>::write_fmt
67.16    3:     0x7fd2d8509808 - std[1c12824126ab204a]::panicking::default_hook::{closure#0}
67.16    4:     0x7fd2d8526b93 - std[1c12824126ab204a]::panicking::default_hook
67.16    5:     0x7fd2d7522d0c - std[1c12824126ab204a]::panicking::update_hook::<alloc[4f8a3791c62ca0ca]::boxed::Box<rustc_driver_impl[51f7c9edb5d05cb7]::install_ice_hook::{closure#1}>>::{cl
67.16    6:     0x7fd2d8526e72 - std[1c12824126ab204a]::panicking::panic_with_hook
67.16    7:     0x7fd2d85098fa - std[1c12824126ab204a]::panicking::panic_handler::{closure#0}
67.16    8:     0x7fd2d84fde19 - std[1c12824126ab204a]::sys::backtrace::__rust_end_short_backtrace::<std[1c12824126ab204a]::panicking::panic_handler::{closure#0}, !>
67.16    9:     0x7fd2d850b32d - __rustc[617f3f0615c04812]::rust_begin_unwind
67.16   10:     0x7fd2d50ec95c - core[86029f731b087684]::panicking::panic_fmt
67.16   11:     0x7fd2d4be9a42 - core[86029f731b087684]::panicking::panic
67.16   12:     0x7fd2d573daf9 - core[86029f731b087684]::option::unwrap_failed
67.16   13:     0x7fd2d9a04743 - <rustc_const_eval[63d8224cb32e09a6]::interpret::eval_context::InterpCx<rustc_const_eval[63d8224cb32e09a6]::const_eval::dummy_machine::DummyMachine>>::read_di
67.16   14:     0x7fd2d9a01bca - <rustc_mir_dataflow[80ddae8f47a563a2]::value_analysis::Map>::for_each_projection_value::<rustc_const_eval[63d8224cb32e09a6]::interpret::operand::OpTy, <rustc
67.16   15:     0x7fd2d9a01d81 - <rustc_mir_dataflow[80ddae8f47a563a2]::value_analysis::Map>::for_each_projection_value::<rustc_const_eval[63d8224cb32e09a6]::interpret::operand::OpTy, <rustc_mir_transform[5d4a77c8247ab2ba]::jump_threading::TOFinder>::process_constant::{closure#0}, <rustc_mir_transform[5d4a77c8247ab2ba]::jump_threading::TOFinder>::process_constant::{closure#1}>
67.16   16:     0x7fd2d9a01d81 - <rustc_mir_dataflow[80ddae8f47a563a2]::value_analysis::Map>::for_each_projection_value::<rustc_const_eval[63d8224cb32e09a6]::interpret::operand::OpTy, <rustc_mir_transform[5d4a77c8247ab2ba]::jump_threading::TOFinder>::process_constant::{closure#0}, <rustc_mir_transform[5d4a77c8247ab2ba]::jump_threading::TOFinder>::process_constant::{closure#1}>
67.16   17:     0x7fd2d9a01018 - <rustc_mir_transform[5d4a77c8247ab2ba]::jump_threading::TOFinder>::process_operand
67.16   18:     0x7fd2d5e89751 - <rustc_mir_transform[5d4a77c8247ab2ba]::jump_threading::JumpThreading as rustc_mir_transform[5d4a77c8247ab2ba]::pass_manager::MirPass>::run_pass
67.17   19:     0x7fd2d8c099f5 - rustc_mir_transform[5d4a77c8247ab2ba]::run_optimization_passes
67.17   20:     0x7fd2d968df53 - rustc_mir_transform[5d4a77c8247ab2ba]::optimized_mir
67.17   21:     0x7fd2d968dba1 - rustc_query_impl[59fb8fd7261b243f]::query_impl::optimized_mir::invoke_provider_fn::__rust_begin_short_backtrace
67.17   22:     0x7fd2d8c5c28a - rustc_query_impl[59fb8fd7261b243f]::execution::try_execute_query::<rustc_middle[bfabc05c2f0f5726]::query::caches::DefIdCache<rustc_middle[bfabc05c2f0f5726]::query::erase::ErasedData<[u8; 8usize]>>, false>
67.17   23:     0x7fd2d8c5b80e - rustc_query_impl[59fb8fd7261b243f]::query_impl::optimized_mir::execute_query_non_incr::__rust_end_short_backtrace
67.17   24:     0x7fd2d632312c - rustc_mir_transform[5d4a77c8247ab2ba]::deduce_param_attrs::deduced_param_attrs
67.17   25:     0x7fd2d8e58a96 - rustc_query_impl[59fb8fd7261b243f]::query_impl::deduced_param_attrs::invoke_provider_fn::__rust_begin_short_backtrace
67.17   26:     0x7fd2d8e56a62 - rustc_query_impl[59fb8fd7261b243f]::execution::try_execute_query::<rustc_middle[bfabc05c2f0f5726]::query::caches::DefIdCache<rustc_middle[bfabc05c2f0f5726]::query::erase::ErasedData<[u8; 16usize]>>, false>
67.17   27:     0x7fd2d8e5620d - rustc_query_impl[59fb8fd7261b243f]::query_impl::deduced_param_attrs::execute_query_non_incr::__rust_end_short_backtrace
67.17   28:     0x7fd2d9525310 - <rustc_metadata[5c6201ad229c5db5]::rmeta::encoder::EncodeContext>::encode_crate_root
67.17   29:     0x7fd2da12937a - <rustc_metadata[5c6201ad229c5db5]::rmeta::encoder::encode_metadata::{closure#3} as core[86029f731b087684]::ops::function::FnOnce<(rustc_middle[bfabc05c2f0f5726]::ty::context::TyCtxt, &std[1c12824126ab204a]::path::Path)>>::call_once
67.17   30:     0x7fd2da126ad4 - rustc_metadata[5c6201ad229c5db5]::rmeta::encoder::encode_metadata
67.17   31:     0x7fd2d9984f09 - rustc_metadata[5c6201ad229c5db5]::fs::encode_and_write_metadata
67.17   32:     0x7fd2d9e46c50 - <rustc_interface[a1db20cb550d7706]::queries::Linker>::codegen_and_build_linker
67.17   33:     0x7fd2d9e418c1 - rustc_interface[a1db20cb550d7706]::interface::run_compiler::<(), rustc_driver_impl[51f7c9edb5d05cb7]::run_compiler::{closure#0}>::{closure#1}
67.17   34:     0x7fd2d9e26a7e - std[1c12824126ab204a]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[a1db20cb550d7706]::util::run_in_thread_with_globals<rustc_interface[a1db20cb550d7706]::util::run_in_thread_pool_with_globals<rustc_interface[a1db20cb550d7706]::interface::run_compiler<(), rustc_driver_impl[51f7c9edb5d05cb7]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
67.17   35:     0x7fd2d9e27320 - <std[1c12824126ab204a]::thread::lifecycle::spawn_unchecked<rustc_interface[a1db20cb550d7706]::util::run_in_thread_with_globals<rustc_interface[a1db20cb550d7706]::util::run_in_thread_pool_with_globals<rustc_interface[a1db20cb550d7706]::interface::run_compiler<(), rustc_driver_impl[51f7c9edb5d05cb7]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[86029f731b087684]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
67.17   36:     0x7fd2d9e281ac - <std[1c12824126ab204a]::sys::thread::unix::Thread>::new::thread_start
67.17   37:     0x7fd2d389eb7b - <unknown>
67.17   38:     0x7fd2d391c630 - __clone
67.18   39:                0x0 - <unknown>
Backtrace

<backtrace>

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

Start with compiler/rustc_const_eval/src/interpret/discriminant.rs at the reported line, then trace the rustc_mir_transform jump_threading and value_analysis frames in the backtrace. Reproduce by compiling the ntex-mqtt project with the shown rustc flags and confirm that the compiler no longer panics during optimization and metadata generation.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
compilers
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.