Skip to content

ICE: FulfillmentError(Obligation, ... Unimplemented). Drop related? #24520

Closed
@frankmcsherry

Description

@frankmcsherry

Sorry about the incoming wall of text. The backtrace was over 100 frames long.

src/main.rs:1:1: 1:1 error: internal compiler error: Encountered errors `[FulfillmentError(Obligation(predicate=Binder(TraitPredicate(progress::graph::Graph)),depth=0),Unimplemented)]` fulfilling during trans
src/main.rs:1 #![feature(test)]
              ^
note: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports
note: run with `RUST_BACKTRACE=1` for a backtrace
thread 'rustc' panicked at 'Box<Any>', /Users/rustbuild/src/rust-buildbot/slave/nightly-dist-rustc-mac/build/src/libsyntax/diagnostic.rs:131

stack backtrace:
   1:        0x1060014e7 - sys::backtrace::write::h068e87ba7a3fd301gQC
   2:        0x10602f6e3 - panicking::on_panic::h9e41b927365e32bamRI
   3:        0x105f523de - rt::unwind::begin_unwind_inner::h3e325126f8078272XyI
   4:        0x105714f9e - rt::unwind::begin_unwind::h3211255641542373370
   5:        0x105714f4b - diagnostic::SpanHandler::span_bug::hff4b0b64c47f0dfdImB
   6:        0x102e7821c - session::Session::span_bug::hc46039cb76696aca3dr
   7:        0x102a12fbd - trans::monomorphize::normalize_associated_type::h12231547644293220421
   8:        0x102b903fe - trans::adt::represent_type_uncached::h2b040bfeed2f1048cqH
   9:        0x102a39161 - trans::adt::represent_type::h9e0893753263a362wgH
  10:        0x102a88815 - trans::type_of::in_memory_type_of::hdb9ea0b5b50d1503dRo
  11:        0x102a88be6 - trans::type_of::in_memory_type_of::hdb9ea0b5b50d1503dRo
  12:        0x102aefbf2 - trans::type_of::type_of_rust_fn::h7aaf51c82b01175bSEo
  13:        0x102af8be4 - trans::base::decl_rust_fn::ha107786e3eafcdbfAFr
  14:        0x102a1edbc - trans::monomorphize::monomorphic_fn::closure.40962
  15:        0x102a1128c - trans::monomorphize::monomorphic_fn::h3e749e73218f4787Ytd
  16:        0x102a3c13d - trans::glue::trans_struct_drop::h7c0455ac053aaa21dPe
  17:        0x102a38af2 - trans::glue::trans_struct_drop_flag::hae07232667dbcdd6jLe
  18:        0x102a30a44 - trans::glue::get_drop_glue::h0a87d55576ed29388De
  19:        0x102a2fc04 - trans::glue::drop_ty::hcdfd60e4171c3591CAe
  20:        0x102b9b6a9 - trans::cleanup::DropValue<'tcx>.Cleanup<'tcx>::trans::hed5557b0a4f24babfnL
  21:        0x102b9a973 - trans::cleanup::FunctionContext<'blk, 'tcx>.CleanupHelperMethods<'blk, 'tcx>::trans_cleanups_to_exit_scope::h5da55477fd4a9ca0JXK
  22:        0x102b9cf70 - trans::cleanup::FunctionContext<'blk, 'tcx>.CleanupHelperMethods<'blk, 'tcx>::get_or_create_landing_pad::h0f2581b371e44b34laL
  23:        0x102afc441 - trans::cleanup::FunctionContext<'blk, 'tcx>.CleanupMethods<'blk, 'tcx>::get_landing_pad::h9e926543e6339004HMK
  24:        0x102a44cd2 - trans::base::invoke::h342d1e09138d3c20dws
  25:        0x102a6c088 - trans::callee::trans_call_inner::h11309187956010816983
  26:        0x102a75fd3 - trans::expr::trans_rvalue_dps_unadjusted::h95d4d9eada139b8dlti
  27:        0x102a2725c - trans::expr::trans_into::h708dad454f03ea40ffh
  28:        0x102b48018 - trans::_match::mk_binding_alloca::h1331137928913725611
  29:        0x102a264be - trans::base::init_local::h4d0c44251f5616e0LMs
  30:        0x102a28082 - trans::controlflow::trans_block::h2f4843422ff4f190G6d
  31:        0x102a7684d - trans::expr::trans_rvalue_dps_unadjusted::h95d4d9eada139b8dlti
  32:        0x102a74d70 - trans::expr::trans_unadjusted::hcd769ff96a7057e9SXh
  33:        0x102a28db5 - trans::expr::trans::hb0430202c61993f1Alh
  34:        0x102a26590 - trans::base::init_local::h4d0c44251f5616e0LMs
  35:        0x102a28082 - trans::controlflow::trans_block::h2f4843422ff4f190G6d
  36:        0x102a7684d - trans::expr::trans_rvalue_dps_unadjusted::h95d4d9eada139b8dlti
  37:        0x102a74d70 - trans::expr::trans_unadjusted::hcd769ff96a7057e9SXh
  38:        0x102a28db5 - trans::expr::trans::hb0430202c61993f1Alh
  39:        0x102a26590 - trans::base::init_local::h4d0c44251f5616e0LMs
  40:        0x102a28082 - trans::controlflow::trans_block::h2f4843422ff4f190G6d
  41:        0x102b086f5 - trans::base::trans_closure::h0cf6b3d7454a8b60Ott
  42:        0x102a0f953 - trans::base::trans_fn::h433c7021f2906971xEt
  43:        0x102a11262 - trans::monomorphize::monomorphic_fn::h3e749e73218f4787Ytd
  44:        0x102a568c1 - trans::callee::trans_fn_ref_with_substs::h80310b0a5f68b440Ybg
  45:        0x102a54c97 - trans::callee::trans_fn_ref::hb55f5137d1250e1c1Zf
  46:        0x102a52910 - trans::callee::trans::h579a553875033cd7iPf
  47:        0x102a68fdb - trans::callee::trans_call_inner::h14040639794469394585
  48:        0x102a77410 - trans::expr::trans_rvalue_dps_unadjusted::h95d4d9eada139b8dlti
  49:        0x102a2725c - trans::expr::trans_into::h708dad454f03ea40ffh
  50:        0x102a283e0 - trans::controlflow::trans_block::h2f4843422ff4f190G6d
  51:        0x102b086f5 - trans::base::trans_closure::h0cf6b3d7454a8b60Ott
  52:        0x102aab103 - trans::closure::trans_closure_expr::h7d93937ee65119b6qxx
  53:        0x102a775e8 - trans::expr::trans_rvalue_dps_unadjusted::h95d4d9eada139b8dlti
  54:        0x102a74d70 - trans::expr::trans_unadjusted::hcd769ff96a7057e9SXh
  55:        0x102a28db5 - trans::expr::trans::hb0430202c61993f1Alh
  56:        0x102a6305f - trans::callee::trans_args::h8911f65b82011b268Rg
  57:        0x102a6bf25 - trans::callee::trans_call_inner::h11309187956010816983
  58:        0x102a75fd3 - trans::expr::trans_rvalue_dps_unadjusted::h95d4d9eada139b8dlti
  59:        0x102a74d70 - trans::expr::trans_unadjusted::hcd769ff96a7057e9SXh
  60:        0x102a28db5 - trans::expr::trans::hb0430202c61993f1Alh
  61:        0x102a6305f - trans::callee::trans_args::h8911f65b82011b268Rg
  62:        0x102a6bf25 - trans::callee::trans_call_inner::h11309187956010816983
  63:        0x102a75fd3 - trans::expr::trans_rvalue_dps_unadjusted::h95d4d9eada139b8dlti
  64:        0x102a74d70 - trans::expr::trans_unadjusted::hcd769ff96a7057e9SXh
  65:        0x102a28db5 - trans::expr::trans::hb0430202c61993f1Alh
  66:        0x102a6305f - trans::callee::trans_args::h8911f65b82011b268Rg
  67:        0x102a6bf25 - trans::callee::trans_call_inner::h11309187956010816983
  68:        0x102a75fd3 - trans::expr::trans_rvalue_dps_unadjusted::h95d4d9eada139b8dlti
  69:        0x102a2725c - trans::expr::trans_into::h708dad454f03ea40ffh
  70:        0x102a261d2 - trans::controlflow::trans_stmt_semi::h6bfbf1021d5dc568K5d
  71:        0x102a28057 - trans::controlflow::trans_block::h2f4843422ff4f190G6d
  72:        0x102a7684d - trans::expr::trans_rvalue_dps_unadjusted::h95d4d9eada139b8dlti
  73:        0x102a2725c - trans::expr::trans_into::h708dad454f03ea40ffh
  74:        0x102b2c230 - trans::_match::trans_match_inner::h429c20c80c5d495diUw
  75:        0x102a767e0 - trans::expr::trans_rvalue_dps_unadjusted::h95d4d9eada139b8dlti
  76:        0x102a2725c - trans::expr::trans_into::h708dad454f03ea40ffh
  77:        0x102a283e0 - trans::controlflow::trans_block::h2f4843422ff4f190G6d
  78:        0x102a7a78c - trans::expr::trans_rvalue_stmt_unadjusted::hb626d0fb5e7ed8a1Ani
  79:        0x102a273d7 - trans::expr::trans_into::h708dad454f03ea40ffh
  80:        0x102b2c230 - trans::_match::trans_match_inner::h429c20c80c5d495diUw
  81:        0x102a767e0 - trans::expr::trans_rvalue_dps_unadjusted::h95d4d9eada139b8dlti
  82:        0x102a2725c - trans::expr::trans_into::h708dad454f03ea40ffh
  83:        0x102b48018 - trans::_match::mk_binding_alloca::h1331137928913725611
  84:        0x102a264be - trans::base::init_local::h4d0c44251f5616e0LMs
  85:        0x102a28082 - trans::controlflow::trans_block::h2f4843422ff4f190G6d
  86:        0x102a7684d - trans::expr::trans_rvalue_dps_unadjusted::h95d4d9eada139b8dlti
  87:        0x102a2725c - trans::expr::trans_into::h708dad454f03ea40ffh
  88:        0x102a283e0 - trans::controlflow::trans_block::h2f4843422ff4f190G6d
  89:        0x102b086f5 - trans::base::trans_closure::h0cf6b3d7454a8b60Ott
  90:        0x102a0f953 - trans::base::trans_fn::h433c7021f2906971xEt
  91:        0x102a11262 - trans::monomorphize::monomorphic_fn::h3e749e73218f4787Ytd
  92:        0x102a568c1 - trans::callee::trans_fn_ref_with_substs::h80310b0a5f68b440Ybg
  93:        0x102a54c97 - trans::callee::trans_fn_ref::hb55f5137d1250e1c1Zf
  94:        0x102a52910 - trans::callee::trans::h579a553875033cd7iPf
  95:        0x102a68fdb - trans::callee::trans_call_inner::h14040639794469394585
  96:        0x102a77410 - trans::expr::trans_rvalue_dps_unadjusted::h95d4d9eada139b8dlti
  97:        0x102a2725c - trans::expr::trans_into::h708dad454f03ea40ffh
  98:        0x102a261d2 - trans::controlflow::trans_stmt_semi::h6bfbf1021d5dc568K5d
  99:        0x102a28057 - trans::controlflow::trans_block::h2f4843422ff4f190G6d
  100:        0x102a77855 - trans::expr::trans_rvalue_dps_unadjusted::h95d4d9eada139b8dlti
 ... <frames omitted>

Could not compile `timely`.

To learn more, run the command again with --verbose.
Echidnatron% 

This seems to be something I can avoid by switching some logic out of Drop and in to an explicitly called method (seal(), in the code). I have a commit checked in that is just a few edits away from the ICE; instructions to reproduce are to comment out the behavior of seal() in src/progress/nested/subgraph.rs line 384, uncomment the Drop impl in the same file, lines 414-416, and then run cargo bench.

Metadata

Metadata

Assignees

No one assigned

    Labels

    I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions