rust-lang / rust-lang/rust

ICE: Encountered invalid discriminant while decoding `Option`

Open
#140,691 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

Code

Caused by:

  process didn't exit successfully: `/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/rustc --crate-name spd_api --edition=2018 src/main.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --diagnostic-width=215 --crate-type bin --emit=dep-info,link -C embed-bitcode=no -C debuginfo=2 --cfg 'feature="dates"' --cfg 'feature="default"' --check-cfg 'cfg(docsrs)' --check-cfg 'cfg(feature, values("dates", "default"))' -C metadata=8a19fe12c6c46d5b -C extra-filename=-8a19fe12c6c46d5b --out-dir /home/code/spd_api/target/debug/deps -C incremental=/home/code/spd_api/target/debug/incremental -L dependency=/home/code/spd_api/target/debug/deps --extern anyhow=/home/code/spd_api/target/debug/deps/libanyhow-d3e32f94253be416.rlib --extern base64=/home/code/spd_api/target/debug/deps/libbase64-1d5853d8a2dd9229.rlib --extern bb8=/home/code/spd_api/target/debug/deps/libbb8-3db0172e469a832d.rlib --extern bb8_redis=/home/code/spd_api/target/debug/deps/libbb8_redis-9a85e729b9b54f42.rlib --extern calamine=/home/code/spd_api/target/debug/deps/libcalamine-10f795d6a4135264.rlib --extern chrono=/home/code/spd_api/target/debug/deps/libchrono-67c08f3f14722062.rlib --extern efficient_sm2=/home/code/spd_api/target/debug/deps/libefficient_sm2-9a9bb8a1083854e9.rlib --extern fast_log=/home/code/spd_api/target/debug/deps/libfast_log-82ef28433956ddcf.rlib --extern futures=/home/code/spd_api/target/debug/deps/libfutures-bc9b20ae66a3ff82.rlib --extern hmac=/home/code/spd_api/target/debug/deps/libhmac-96c2e4ffd80b7d65.rlib --extern jsonwebtoken=/home/code/spd_api/target/debug/deps/libjsonwebtoken-dd5f1a4607fff07b.rlib --extern log=/home/code/spd_api/target/debug/deps/liblog-2bdf425ff4bae557.rlib --extern md5=/home/code/spd_api/target/debug/deps/libmd5-857280307c103901.rlib --extern mssql=/home/code/spd_api/target/debug/deps/libmssql-06fba21b10fe6b88.rlib --extern num_bigint=/home/code/spd_api/target/debug/deps/libnum_bigint-e834b7d67a819244.rlib --extern oracle=/home/code/spd_api/target/debug/deps/liboracle-fe277908bac63e24.rlib --extern oracle_procmacro=/home/code/spd_api/target/debug/deps/liboracle_procmacro-4420dc882bc9c5f8.so --extern r2d2=/home/code/spd_api/target/debug/deps/libr2d2-7bd838f288d166e9.rlib --extern r2d2_oracle=/home/code/spd_api/target/debug/deps/libr2d2_oracle-f9990235b3a5a6d2.rlib --extern rand=/home/code/spd_api/target/debug/deps/librand-f401659c26e2466a.rlib --extern rand_chacha=/home/code/spd_api/target/debug/deps/librand_chacha-43575d262906fc45.rlib --extern redis=/home/code/spd_api/target/debug/deps/libredis-6f975fd3042e2c01.rlib --extern regex=/home/code/spd_api/target/debug/deps/libregex-990e85a0072a22b3.rlib --extern reqwest=/home/code/spd_api/target/debug/deps/libreqwest-72ed80fdd62a737a.rlib --extern rnjwt=/home/code/spd_api/target/debug/deps/librnjwt-b829cf28be8fb513.rlib --extern rocket=/home/code/spd_api/target/debug/deps/librocket-30f3690eaa6a4628.rlib --extern rocket_prometheus=/home/code/spd_api/target/debug/deps/librocket_prometheus-34012fb91eb61876.rlib --extern rust_decimal=/home/code/spd_api/target/debug/deps/librust_decimal-eb4c3d4c7e956298.rlib --extern rust_decimal_macros=/home/code/spd_api/target/debug/deps/librust_decimal_macros-5a4560efb7ba39f4.so --extern sentry=/home/code/spd_api/target/debug/deps/libsentry-9aa3f2f9e778497f.rlib --extern serde_json=/home/code/spd_api/target/debug/deps/libserde_json-93a1bb43768718ef.rlib --extern sha2=/home/code/spd_api/target/debug/deps/libsha2-47bcbeed79b447b8.rlib --extern thiserror=/home/code/spd_api/target/debug/deps/libthiserror-46d174d772a6ea67.rlib --extern tiberius=/home/code/spd_api/target/debug/deps/libtiberius-e62e0b1da5f2b582.rlib --extern toml=/home/code/spd_api/target/debug/deps/libtoml-e157ac1fb0bee2a5.rlib --extern urlencoding=/home/code/spd_api/target/debug/deps/liburlencoding-1a69519d397122b9.rlib --extern uuid=/home/code/spd_api/target/debug/deps/libuuid-d2844acca7a4e1a1.rlib --extern yasna=/home/code/spd_api/target/debug/deps/libyasna-ed3caacef036e7c5.rlib -Ctarget-cpu=native -L native=/home/code/spd_api/target/debug/build/ring-46080cd1c106c1bd/out -L native=/home/code/spd_api/target/debug/build/oracle-7cbb978b7815e212/out` (signal: 6, SIGABRT: process abort signal)
Meta

rustc --version --verbose:

<version>
Error output
Backtrace

thread 'rustc' panicked at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/compiler/rustc_serialize/src/serialize.rs:379:18:
Encountered invalid discriminant while decoding `Option`.
stack backtrace:
   0:     0x7fe3d573012a - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h5b6bd5631a6d1f6b
   1:     0x7fe3d5f118f8 - core::fmt::write::h7550c97b06c86515
   2:     0x7fe3d7148b91 - std::io::Write::write_fmt::h7b09c64fe0be9c84
   3:     0x7fe3d572ff82 - std::sys::backtrace::BacktraceLock::print::h2395ccd2c84ba3aa
   4:     0x7fe3d5732456 - std::panicking::default_hook::{{closure}}::he19d4c7230e07961
   5:     0x7fe3d57322a0 - std::panicking::default_hook::hf614597d3c67bbdb
   6:     0x7fe3d47f4556 - std[c6eb78587944e35c]::panicking::update_hook::<alloc[148a978a4a62f5d]::boxed::Box<rustc_driver_impl[4c2d2ad79fb810ac]::install_ice_hook::{closure#0}>>::{closure#0}
   7:     0x7fe3d5732b68 - std::panicking::rust_panic_with_hook::h8942133a8b252070
   8:     0x7fe3d5732906 - std::panicking::begin_panic_handler::{{closure}}::hb5f5963570096b29
   9:     0x7fe3d57305d9 - std::sys::backtrace::__rust_end_short_backtrace::h6208cedc1922feda
  10:     0x7fe3d57325fc - rust_begin_unwind
  11:     0x7fe3d31ab160 - core::panicking::panic_fmt::h0c3082644d1bf418
  12:     0x7fe3d61b0764 - <rustc_middle[a886f61dbc61428a]::query::on_disk_cache::CacheDecoder as rustc_span[3e5cf3424d44936d]::SpanDecoder>::decode_span
  13:     0x7fe3d61b2d22 - <rustc_middle[a886f61dbc61428a]::mir::BasicBlockData as rustc_serialize[291577124d5ff17e]::serialize::Decodable<rustc_middle[a886f61dbc61428a]::query::on_disk_cache::CacheDecoder>>::decode
  14:     0x7fe3d6cf2f64 - <rustc_middle[a886f61dbc61428a]::mir::Body as rustc_serialize[291577124d5ff17e]::serialize::Decodable<rustc_middle[a886f61dbc61428a]::query::on_disk_cache::CacheDecoder>>::decode
  15:     0x7fe3d6cf2bec - rustc_query_impl[db795c774d495014]::plumbing::try_load_from_disk::<&rustc_middle[a886f61dbc61428a]::mir::Body>
  16:     0x7fe3d6cf2919 - <rustc_query_impl[db795c774d495014]::query_impl::mir_for_ctfe::dynamic_query::{closure#6} as core[c06ff78fa456ca03]::ops::function::FnOnce<(rustc_middle[a886f61dbc61428a]::ty::context::TyCtxt, &rustc_span[3e5cf3424d44936d]::def_id::DefId, rustc_query_system[b2bb6e43dd6b7fda]::dep_graph::serialized::SerializedDepNodeIndex, rustc_query_system[b2bb6e43dd6b7fda]::dep_graph::graph::DepNodeIndex)>>::call_once
  17:     0x7fe3d63441c2 - rustc_query_system[b2bb6e43dd6b7fda]::query::plumbing::try_execute_query::<rustc_query_impl[db795c774d495014]::DynamicConfig<rustc_query_system[b2bb6e43dd6b7fda]::query::caches::DefIdCache<rustc_middle[a886f61dbc61428a]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[db795c774d495014]::plumbing::QueryCtxt, true>
  18:     0x7fe3d6342aa3 - rustc_query_impl[db795c774d495014]::query_impl::optimized_mir::get_query_incr::__rust_end_short_backtrace
  19:     0x7fe3d68ad86f - rustc_middle[a886f61dbc61428a]::query::plumbing::query_get_at::<rustc_query_system[b2bb6e43dd6b7fda]::query::caches::DefIdCache<rustc_middle[a886f61dbc61428a]::query::erase::Erased<[u8; 8usize]>>>
  20:     0x7fe3d67f6802 - rustc_mir_transform[b36c87ceb4bb9a8e]::shim::make_shim
  21:     0x7fe3d67f5a6f - rustc_query_impl[db795c774d495014]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[db795c774d495014]::query_impl::mir_shims::dynamic_query::{closure#2}::{closure#0}, rustc_middle[a886f61dbc61428a]::query::erase::Erased<[u8; 8usize]>>
  22:     0x7fe3d67f5a2f - <rustc_query_impl[db795c774d495014]::query_impl::mir_shims::dynamic_query::{closure#2} as core[c06ff78fa456ca03]::ops::function::FnOnce<(rustc_middle[a886f61dbc61428a]::ty::context::TyCtxt, rustc_middle[a886f61dbc61428a]::ty::instance::InstanceKind)>>::call_once
  23:     0x7fe3d67e990e - rustc_query_system[b2bb6e43dd6b7fda]::query::plumbing::try_execute_query::<rustc_query_impl[db795c774d495014]::DynamicConfig<rustc_query_system[b2bb6e43dd6b7fda]::query::caches::DefaultCache<rustc_middle[a886f61dbc61428a]::ty::instance::InstanceKind, rustc_middle[a886f61dbc61428a]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[db795c774d495014]::plumbing::QueryCtxt, true>
  24:     0x7fe3d67e9566 - rustc_query_impl[db795c774d495014]::query_impl::mir_shims::get_query_incr::__rust_end_short_backtrace
  25:     0x7fe3d2810fac - <rustc_middle[a886f61dbc61428a]::ty::context::TyCtxt>::instance_mir
  26:     0x7fe3d37e8d3a - rustc_monomorphize[4c5fa529dcdcd4f2]::collector::collect_items_rec::{closure#0}
  27:     0x7fe3d69ae2b2 - rustc_monomorphize[4c5fa529dcdcd4f2]::collector::collect_items_rec
  28:     0x7fe3d69ae99e - rustc_monomorphize[4c5fa529dcdcd4f2]::collector::collect_items_rec
  29:     0x7fe3d69ae99e - rustc_monomorphize[4c5fa529dcdcd4f2]::collector::collect_items_rec
  30:     0x7fe3d69ae99e - rustc_monomorphize[4c5fa529dcdcd4f2]::collector::collect_items_rec
  31:     0x7fe3d69ae99e - rustc_monomorphize[4c5fa529dcdcd4f2]::collector::collect_items_rec
  32:     0x7fe3d69ae99e - rustc_monomorphize[4c5fa529dcdcd4f2]::collector::collect_items_rec
  33:     0x7fe3d69ae99e - rustc_monomorphize[4c5fa529dcdcd4f2]::collector::collect_items_rec
  34:     0x7fe3d69ae99e - rustc_monomorphize[4c5fa529dcdcd4f2]::collector::collect_items_rec
  35:     0x7fe3d69ae99e - rustc_monomorphize[4c5fa529dcdcd4f2]::collector::collect_items_rec
  36:     0x7fe3d69ae99e - rustc_monomorphize[4c5fa529dcdcd4f2]::collector::collect_items_rec
  37:     0x7fe3d69ae99e - rustc_monomorphize[4c5fa529dcdcd4f2]::collector::collect_items_rec
  38:     0x7fe3d69ae99e - rustc_monomorphize[4c5fa529dcdcd4f2]::collector::collect_items_rec
  39:     0x7fe3d69ae99e - rustc_monomorphize[4c5fa529dcdcd4f2]::collector::collect_items_rec
  40:     0x7fe3d69ae99e - rustc_monomorphize[4c5fa529dcdcd4f2]::collector::collect_items_rec
  41:     0x7fe3d69ae99e - rustc_monomorphize[4c5fa529dcdcd4f2]::collector::collect_items_rec
  42:     0x7fe3d69ae99e - rustc_monomorphize[4c5fa529dcdcd4f2]::collector::collect_items_rec
  43:     0x7fe3d69ae99e - rustc_monomorphize[4c5fa529dcdcd4f2]::collector::collect_items_rec
  44:     0x7fe3d69ae99e - rustc_monomorphize[4c5fa529dcdcd4f2]::collector::collect_items_rec
  45:     0x7fe3d69ae99e - rustc_monomorphize[4c5fa529dcdcd4f2]::collector::collect_items_rec
  46:     0x7fe3d69ae99e - rustc_monomorphize[4c5fa529dcdcd4f2]::collector::collect_items_rec
  47:     0x7fe3d69b4b3a - rustc_monomorphize[4c5fa529dcdcd4f2]::partitioning::collect_and_partition_mono_items
  48:     0x7fe3d6ce5b16 - rustc_query_impl[db795c774d495014]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[db795c774d495014]::query_impl::collect_and_partition_mono_items::dynamic_query::{closure#2}::{closure#0}, rustc_middle[a886f61dbc61428a]::query::erase::Erased<[u8; 24usize]>>
  49:     0x7fe3d6ce5adb - <rustc_query_impl[db795c774d495014]::query_impl::collect_and_partition_mono_items::dynamic_query::{closure#2} as core[c06ff78fa456ca03]::ops::function::FnOnce<(rustc_middle[a886f61dbc61428a]::ty::context::TyCtxt, ())>>::call_once
  50:     0x7fe3d6ef2ea1 - rustc_query_system[b2bb6e43dd6b7fda]::query::plumbing::try_execute_query::<rustc_query_impl[db795c774d495014]::DynamicConfig<rustc_query_system[b2bb6e43dd6b7fda]::query::caches::SingleCache<rustc_middle[a886f61dbc61428a]::query::erase::Erased<[u8; 24usize]>>, false, false, false>, rustc_query_impl[db795c774d495014]::plumbing::QueryCtxt, true>
  51:     0x7fe3d6ef275a - rustc_query_impl[db795c774d495014]::query_impl::collect_and_partition_mono_items::get_query_incr::__rust_end_short_backtrace
  52:     0x7fe3d6d21762 - <rustc_codegen_llvm[e2813e29308ec38d]::LlvmCodegenBackend as rustc_codegen_ssa[76f2c5b87770fd75]::traits::backend::CodegenBackend>::codegen_crate
  53:     0x7fe3d6facab9 - <rustc_interface[88a02114bbdb2383]::queries::Linker>::codegen_and_build_linker
  54:     0x7fe3d6c521d4 - rustc_interface[88a02114bbdb2383]::interface::run_compiler::<core[c06ff78fa456ca03]::result::Result<(), rustc_span[3e5cf3424d44936d]::ErrorGuaranteed>, rustc_driver_impl[4c2d2ad79fb810ac]::run_compiler::{closure#0}>::{closure#1}
  55:     0x7fe3d6c433d9 - std[c6eb78587944e35c]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[88a02114bbdb2383]::util::run_in_thread_with_globals<rustc_interface[88a02114bbdb2383]::interface::run_compiler<core[c06ff78fa456ca03]::result::Result<(), rustc_span[3e5cf3424d44936d]::ErrorGuaranteed>, rustc_driver_impl[4c2d2ad79fb810ac]::run_compiler::{closure#0}>::{closure#1}, core[c06ff78fa456ca03]::result::Result<(), rustc_span[3e5cf3424d44936d]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[c06ff78fa456ca03]::result::Result<(), rustc_span[3e5cf3424d44936d]::ErrorGuaranteed>>
  56:     0x7fe3d6d12fac - <<std[c6eb78587944e35c]::thread::Builder>::spawn_unchecked_<rustc_interface[88a02114bbdb2383]::util::run_in_thread_with_globals<rustc_interface[88a02114bbdb2383]::interface::run_compiler<core[c06ff78fa456ca03]::result::Result<(), rustc_span[3e5cf3424d44936d]::ErrorGuaranteed>, rustc_driver_impl[4c2d2ad79fb810ac]::run_compiler::{closure#0}>::{closure#1}, core[c06ff78fa456ca03]::result::Result<(), rustc_span[3e5cf3424d44936d]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[c06ff78fa456ca03]::result::Result<(), rustc_span[3e5cf3424d44936d]::ErrorGuaranteed>>::{closure#1} as core[c06ff78fa456ca03]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  57:     0x7fe3d6d13a6b - std::sys::pal::unix::thread::Thread::new::thread_start::hcc78f3943333fa94
  58:     0x7fe3d08081ca - start_thread
  59:     0x7fe3d0439e73 - __GI___clone
  60:                0x0 - <unknown>

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 the provided rustc command and the backtrace, especially rustc_serialize/src/serialize.rs:379 and rustc_middle's on-disk cache decoding path. Check whether the ICE reproduces on beta or nightly, then minimize the reported project to a verifiable example; done means the failure is isolated well enough to diagnose and track.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
compilers
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.