Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

internal compiler error - task 'rustc' failed at 'no entry found for key' ... hashmap/map.rs:1093 #17810

Closed
jpetkau opened this issue Oct 6, 2014 · 3 comments · Fixed by #18518
Labels
I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️

Comments

@jpetkau
Copy link

jpetkau commented Oct 6, 2014

I hit an internal compiler error in rustc 0.12.0-nightly (d53874e 2014-10-02 01:22:20 +0000).

Notes:

  • trying to compile ncollide / nphysics. It wasn't finding crates, possibly because of ncollide recently switching to use cargo's 'feature' feature, so I was randomly prodding the Cargo.toml files trying to get it working. The internal error appears to happen when it's trying to abort after a legitimate error. This is on OSX 10.9.5.
src/nphysics_testbed2d.rs:9:1: 9:42 error: can't find crate for `ncollide`
src/nphysics_testbed2d.rs:9 extern crate "ncollide2df32" as ncollide;
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
error: aborting due to previous error
Build failed, waiting for other jobs to finish...
error: internal compiler error: unexpected failure
note: the compiler hit an unexpected failure path. this is a bug.
note: we would appreciate a bug report: http://doc.rust-lang.org/complement-bugreport.html
note: run with `RUST_BACKTRACE=1` for a backtrace
task 'rustc' failed at 'no entry found for key', /Users/rustbuild/src/rust-buildbot/slave/nightly-mac/build/src/libstd/collections/hashmap/map.rs:1093

stack backtrace:
   1:        0x110287a59 - rt::backtrace::imp::write::h049a27795fff38dbKPq
   2:        0x11028ad91 - failure::on_fail::hf299c5c1cb208a9do6q
   3:        0x11050e0f5 - unwind::begin_unwind_inner::h465f1e1474a7adb5VRd
   4:        0x10cefc7cc - unwind::begin_unwind::h6224404741762780903
   5:        0x10d3ddc7c - middle::ty::type_contents::tc_ty::h37c76a0b06a14d6cMjF
   6:        0x10d3dd16e - middle::ty::type_contents::tc_ty::h37c76a0b06a14d6cMjF
   7:        0x10d3dd16e - middle::ty::type_contents::tc_ty::h37c76a0b06a14d6cMjF
   8:        0x10d3dd16e - middle::ty::type_contents::tc_ty::h37c76a0b06a14d6cMjF
   9:        0x10d3dd3b2 - middle::ty::type_contents::tc_ty::h37c76a0b06a14d6cMjF
  10:        0x10d17a43e - middle::ty::type_contents::h75766b281b690932HiF
  11:        0x10d371d49 - middle::expr_use_visitor::ExprUseVisitor<'d, 't, TYPER>::consume_expr::h13012547343158736823
  12:        0x10d36c8ef - middle::expr_use_visitor::ExprUseVisitor<'d, 't, TYPER>::walk_expr::h6685391383007306325
  13:        0x10d371d9e - middle::expr_use_visitor::ExprUseVisitor<'d, 't, TYPER>::consume_expr::h13012547343158736823
  14:        0x10d36c8ef - middle::expr_use_visitor::ExprUseVisitor<'d, 't, TYPER>::walk_expr::h6685391383007306325
  15:        0x10d36ce87 - middle::expr_use_visitor::ExprUseVisitor<'d, 't, TYPER>::walk_expr::h6685391383007306325
  16:        0x10d375194 - middle::expr_use_visitor::ExprUseVisitor<'d, 't, TYPER>::mutate_expr::h9035542041730929236
  17:        0x10d36cd94 - middle::expr_use_visitor::ExprUseVisitor<'d, 't, TYPER>::walk_expr::h6685391383007306325
  18:        0x10d371d9e - middle::expr_use_visitor::ExprUseVisitor<'d, 't, TYPER>::consume_expr::h13012547343158736823
  19:        0x10d371f4c - middle::expr_use_visitor::ExprUseVisitor<'d, 't, TYPER>::walk_block::h7738644643951441682
  20:        0x10d36ca32 - middle::expr_use_visitor::ExprUseVisitor<'d, 't, TYPER>::walk_expr::h6685391383007306325
  21:        0x10d375b2a - middle::trans::_match::create_bindings_map::hd25097ff54ccbcdasmi
  22:        0x10d2ee38d - middle::trans::_match::trans_match::h0ba66424e9281343iii
  23:        0x10d2dc3f9 - middle::trans::expr::trans_rvalue_dps_unadjusted::h5d6407e79a5cc35fui4
  24:        0x10d29ef2d - middle::trans::expr::trans_into::h6eccb4310a02b305lU2
  25:        0x10d29e24c - middle::trans::controlflow::trans_stmt_semi::hea41b09732ea710at0Y
  26:        0x10d29d8c0 - middle::trans::controlflow::trans_stmt::h1b97b1c27514a134gWY
  27:        0x10d29f198 - middle::trans::controlflow::trans_block::h337751839b4d81e3m1Y
  28:        0x10d2dc476 - middle::trans::expr::trans_rvalue_dps_unadjusted::h5d6407e79a5cc35fui4
  29:        0x10d29ef2d - middle::trans::expr::trans_into::h6eccb4310a02b305lU2
  30:        0x10d29e24c - middle::trans::controlflow::trans_stmt_semi::hea41b09732ea710at0Y
  31:        0x10d29d8c0 - middle::trans::controlflow::trans_stmt::h1b97b1c27514a134gWY
  32:        0x10d29f198 - middle::trans::controlflow::trans_block::h337751839b4d81e3m1Y
  33:        0x10d29f902 - middle::trans::controlflow::trans_if::h6b93397b0f18b64933Y
  34:        0x10d2dc39e - middle::trans::expr::trans_rvalue_dps_unadjusted::h5d6407e79a5cc35fui4
  35:        0x10d29ef2d - middle::trans::expr::trans_into::h6eccb4310a02b305lU2
  36:        0x10d29f29d - middle::trans::controlflow::trans_block::h337751839b4d81e3m1Y
  37:        0x10d29f902 - middle::trans::controlflow::trans_if::h6b93397b0f18b64933Y
  38:        0x10d2dc39e - middle::trans::expr::trans_rvalue_dps_unadjusted::h5d6407e79a5cc35fui4
  39:        0x10d29ef2d - middle::trans::expr::trans_into::h6eccb4310a02b305lU2
  40:        0x10d29f29d - middle::trans::controlflow::trans_block::h337751839b4d81e3m1Y
  41:        0x10d34c81a - middle::trans::base::trans_closure::hc49edb61d41084dfi7e
  42:        0x10d2919c8 - middle::trans::base::trans_fn::h90875a4e9c0850f7Gif
  43:        0x10d29376a - middle::trans::monomorphize::monomorphic_fn::h4f43084b40ed295c4sY
  44:        0x10d2c9522 - middle::trans::callee::trans_fn_ref_with_substs::h9474b7d186580bbeuO1
  45:        0x10d2c62cb - middle::trans::callee::trans_fn_ref::h677ee1a9dbc6c9254C1
  46:        0x10d2a83c0 - middle::trans::meth::trans_method_callee::h282f920af2833d33tpk
  47:        0x10d2ce6fb - middle::trans::callee::trans_method_call::closure.123396
  48:        0x10d2a6a24 - middle::trans::callee::trans_call_inner::hc594d308e2d213b2ca2
  49:        0x10d2ce564 - middle::trans::callee::trans_method_call::hcc48f7a83dff65e7F51
  50:        0x10d2dbeff - middle::trans::expr::trans_rvalue_dps_unadjusted::h5d6407e79a5cc35fui4
  51:        0x10d2dabe6 - middle::trans::expr::trans_unadjusted::h300bbfb3064e6e71jF3
  52:        0x10d2a03f6 - middle::trans::expr::trans::h4cd050e04fe533fafY2
  53:        0x10d2de450 - middle::trans::expr::trans_rvalue_stmt_unadjusted::h7457beeaca2ed7dfvc4
  54:        0x10d29effc - middle::trans::expr::trans_into::h6eccb4310a02b305lU2
  55:        0x10d29e24c - middle::trans::controlflow::trans_stmt_semi::hea41b09732ea710at0Y
  56:        0x10d29d8c0 - middle::trans::controlflow::trans_stmt::h1b97b1c27514a134gWY
  57:        0x10d29f198 - middle::trans::controlflow::trans_block::h337751839b4d81e3m1Y
  58:        0x10d34c81a - middle::trans::base::trans_closure::hc49edb61d41084dfi7e
  59:        0x10d2919c8 - middle::trans::base::trans_fn::h90875a4e9c0850f7Gif
  60:        0x10d29376a - middle::trans::monomorphize::monomorphic_fn::h4f43084b40ed295c4sY
  61:        0x10d2c9522 - middle::trans::callee::trans_fn_ref_with_substs::h9474b7d186580bbeuO1
  62:        0x10d2c62cb - middle::trans::callee::trans_fn_ref::h677ee1a9dbc6c9254C1
  63:        0x10d2a83c0 - middle::trans::meth::trans_method_callee::h282f920af2833d33tpk
  64:        0x10d2ce6fb - middle::trans::callee::trans_method_call::closure.123396
  65:        0x10d2a6a24 - middle::trans::callee::trans_call_inner::hc594d308e2d213b2ca2
  66:        0x10d2ce564 - middle::trans::callee::trans_method_call::hcc48f7a83dff65e7F51
  67:        0x10d2dbeff - middle::trans::expr::trans_rvalue_dps_unadjusted::h5d6407e79a5cc35fui4
  68:        0x10d29ef2d - middle::trans::expr::trans_into::h6eccb4310a02b305lU2
  69:        0x10d29e24c - middle::trans::controlflow::trans_stmt_semi::hea41b09732ea710at0Y
  70:        0x10d29d8c0 - middle::trans::controlflow::trans_stmt::h1b97b1c27514a134gWY
  71:        0x10d29f198 - middle::trans::controlflow::trans_block::h337751839b4d81e3m1Y
  72:        0x10d29f902 - middle::trans::controlflow::trans_if::h6b93397b0f18b64933Y
  73:        0x10d2dc39e - middle::trans::expr::trans_rvalue_dps_unadjusted::h5d6407e79a5cc35fui4
  74:        0x10d29ef2d - middle::trans::expr::trans_into::h6eccb4310a02b305lU2
  75:        0x10d29f29d - middle::trans::controlflow::trans_block::h337751839b4d81e3m1Y
  76:        0x10d2a4414 - middle::trans::controlflow::trans_for::h2d44c78625f7e59bLdZ
  77:        0x10d2de338 - middle::trans::expr::trans_rvalue_stmt_unadjusted::h7457beeaca2ed7dfvc4
  78:        0x10d29effc - middle::trans::expr::trans_into::h6eccb4310a02b305lU2
  79:        0x10d29e24c - middle::trans::controlflow::trans_stmt_semi::hea41b09732ea710at0Y
  80:        0x10d29d8c0 - middle::trans::controlflow::trans_stmt::h1b97b1c27514a134gWY
  81:        0x10d29f198 - middle::trans::controlflow::trans_block::h337751839b4d81e3m1Y
  82:        0x10d34c81a - middle::trans::base::trans_closure::hc49edb61d41084dfi7e
  83:        0x10d2919c8 - middle::trans::base::trans_fn::h90875a4e9c0850f7Gif
  84:        0x10d29376a - middle::trans::monomorphize::monomorphic_fn::h4f43084b40ed295c4sY
  85:        0x10d2c9522 - middle::trans::callee::trans_fn_ref_with_substs::h9474b7d186580bbeuO1
  86:        0x10d2c62cb - middle::trans::callee::trans_fn_ref::h677ee1a9dbc6c9254C1
  87:        0x10d2a83c0 - middle::trans::meth::trans_method_callee::h282f920af2833d33tpk
  88:        0x10d2ce6fb - middle::trans::callee::trans_method_call::closure.123396
  89:        0x10d2a6a24 - middle::trans::callee::trans_call_inner::hc594d308e2d213b2ca2
  90:        0x10d2ce564 - middle::trans::callee::trans_method_call::hcc48f7a83dff65e7F51
  91:        0x10d2dbeff - middle::trans::expr::trans_rvalue_dps_unadjusted::h5d6407e79a5cc35fui4
  92:        0x10d29ef2d - middle::trans::expr::trans_into::h6eccb4310a02b305lU2
  93:        0x10d29e24c - middle::trans::controlflow::trans_stmt_semi::hea41b09732ea710at0Y
  94:        0x10d29d8c0 - middle::trans::controlflow::trans_stmt::h1b97b1c27514a134gWY
  95:        0x10d29f198 - middle::trans::controlflow::trans_block::h337751839b4d81e3m1Y
  96:        0x10d34c81a - middle::trans::base::trans_closure::hc49edb61d41084dfi7e
  97:        0x10d2919c8 - middle::trans::base::trans_fn::h90875a4e9c0850f7Gif
  98:        0x10d34e225 - middle::trans::meth::trans_impl::h32e5a4ac425ceae4Okk
  99:        0x10d28f5d2 - middle::trans::base::trans_item::hc219df2cb1017ae3ZBf
  100:        0x10d28f648 - middle::trans::base::trans_item::hc219df2cb1017ae3ZBf
 ... <frames omitted>

Could not compile nphysics_testbed2d.

@kmcallister kmcallister added the I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ label Oct 6, 2014
@jpetkau
Copy link
Author

jpetkau commented Oct 8, 2014

Still happening consistently as of rustc 0.12.0-nightly (dc987ad 2014-10-04 23:42:07 +0000).

Also, it's not caused by task abort as I speculated above; it happens consistently when trying to compile nphysics's lib2df32.rs even in the absence of other errors.

@bkoropoff
Copy link
Contributor

Do you have a reduced testcase?

sebcrozet added a commit to dimforge/ncollide that referenced this issue Oct 8, 2014
@sebcrozet
Copy link
Contributor

I do not really have a reduced testcase, though, somehow, I was able to work around the ICE on this commit: dimforge/ncollide@4f744e6

What I did is to remove explicit calls to .deref_mut() and explicitely dereference anything that had the type Rc<RefCell<Foo>> or &Rc<RefCell<Foo>> before I call .borrow_mut(). For example, if l has the type &mut Rc<RefCell<Foo>>, I changed l.borrow_mut().deref_mut().some_field to (**l).borrow_mut().some_field.

Note thit this fix is done on ncollide. The ICE seems to happend only when ncollide is used by another library/binary (and not during the compilation of ncollide itself).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants