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

ICE building Servo with 1.14.0-nightly (0491a2317 2016-11-08) #37686

Closed
nox opened this issue Nov 10, 2016 · 1 comment
Closed

ICE building Servo with 1.14.0-nightly (0491a2317 2016-11-08) #37686

nox opened this issue Nov 10, 2016 · 1 comment
Labels
E-easy Call for participation: Easy difficulty. Experience needed to fix: Not much. Good first issue. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ regression-from-stable-to-beta Performance or correctness regression from stable to beta.

Comments

@nox
Copy link
Contributor

nox commented Nov 10, 2016

± RUST_BACKTRACE=1 ./mach build -d
   Compiling glutin_app v0.0.1 (file:///Users/nox/src/servo/ports/glutin)
error: internal compiler error: unexpected panic

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 'already borrowed: BorrowMutError', ../src/libcore/result.rs:837
stack backtrace:
   1:        0x104829faa - std::sys::imp::backtrace::tracing::imp::write::he3d1bfbdbf113480
   2:        0x104839d6f - std::panicking::default_hook::{{closure}}::h575f1b40d2e88f07
   3:        0x104836e35 - std::panicking::default_hook::h3d5dccce8125d0cf
   4:        0x104837566 - std::panicking::rust_panic_with_hook::h00b81bb3dcbd51f2
   5:        0x104837404 - std::panicking::begin_panic::ha6a0d553db9869ff
   6:        0x104837322 - std::panicking::begin_panic_fmt::h24d113aee3ee4081
   7:        0x104837287 - rust_begin_unwind
   8:        0x104879c10 - core::panicking::panic_fmt::he441b2ea2036b98a
   9:        0x101196f1e - core::result::unwrap_failed::h643f371f836203d8
  10:        0x1013a0d92 - rustc::ty::context::TyCtxt::node_type_insert::h433372d17c14c1dd
  11:        0x10078125b - rustc_metadata::astencode::decode_inlined_item::hd19adf628ddcc1a4
  12:        0x1007a306d - rustc_metadata::decoder::<impl rustc_metadata::cstore::CrateMetadata>::maybe_get_item_ast::h552d81f5f050a70e
  13:        0x1007abb6f - rustc_metadata::cstore_impl::<impl rustc::middle::cstore::CrateStore<'tcx> for rustc_metadata::cstore::CStore>::maybe_get_item_ast::he46c1ec4b2a4b7a1
  14:        0x101103847 - rustc_const_eval::eval::lookup_const_by_id::h2d28364fed06a8ed
  15:        0x101121b29 - rustc_const_eval::pattern::PatternContext::lower_pattern::h22fcc4813d357489
  16:        0x101102338 - <collections::vec::Vec<T> as core::iter::traits::FromIterator<T>>::from_iter::hb3721f06cfebe3d5
  17:        0x101121421 - rustc_const_eval::pattern::PatternContext::lower_pattern::h22fcc4813d357489
  18:        0x1011001da - <core::iter::Map<I, F> as core::iter::iterator::Iterator>::next::h1d00f2eb0a94dd65
  19:        0x101100923 - <core::iter::Map<I, F> as core::iter::iterator::Iterator>::next::h2d56eea4c4b18aae
  20:        0x10111c610 - rustc_const_eval::check_match::MatchVisitor::check_match::hd1f5b608683119ec
  21:        0x10111b1f4 - <rustc_const_eval::check_match::MatchVisitor<'a, 'tcx> as rustc::hir::intravisit::Visitor<'v>>::visit_fn::h6973aaef1076bcf8
  22:        0x101119bb9 - <rustc_const_eval::check_match::OuterVisitor<'a, 'tcx> as rustc::hir::intravisit::Visitor<'v>>::visit_fn::h88018547ff5e89ca
  23:        0x101119a6e - <rustc_const_eval::check_match::OuterVisitor<'a, 'tcx> as rustc::hir::intravisit::Visitor<'v>>::visit_impl_item::hb3245687d1fcb98c
  24:        0x10111a69a - rustc_const_eval::check_match::check_crate::h7c305da7ebc33f6b
  25:        0x10014fe3e - rustc_driver::driver::phase_3_run_analysis_passes::{{closure}}::hb062c53ab7b33bac
  26:        0x10011c8d6 - rustc_driver::driver::phase_3_run_analysis_passes::h016090d638ff1d7f
  27:        0x10010f6d5 - rustc_driver::driver::compile_input::h21840cdf516c3ab1
  28:        0x10013a009 - rustc_driver::run_compiler::h81a62653df4e7b03
  29:        0x100071d18 - std::panicking::try::do_call::h54deb93462da3a7f
  30:        0x10483a32a - __rust_maybe_catch_panic
  31:        0x100091eef - <F as alloc::boxed::FnBox<A>>::call_box::h2181ecf694b72547
  32:        0x1048363d4 - std::sys::imp::thread::Thread::new::thread_start::h990fb082eb5abe34
  33:     0x7fffc5133aaa - _pthread_body
  34:     0x7fffc51339f6 - _pthread_start

error: Could not compile `glutin_app`.

To learn more, run the command again with --verbose.
Build FAILED in 0:00:03
@eddyb
Copy link
Member

eddyb commented Nov 10, 2016

My bad, there's a temporary tcx.tables() that ended up in a match discriminant. Minimal testcase:

fn main() {
    match (0, 0) {
        (std::usize::MIN, std::usize::MAX) => {}
        _ => {}
    }
}

The faulty code can be fixed by pulling it out into a variable, like for PatKind::Slice.

@eddyb eddyb added E-easy Call for participation: Easy difficulty. Experience needed to fix: Not much. Good first issue. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ labels Nov 10, 2016
bors added a commit that referenced this issue Nov 10, 2016
Work around a borrow surviving too long (fixes #37686)
@bors bors closed this as completed in 84239df Nov 10, 2016
@est31 est31 mentioned this issue Dec 1, 2016
2 tasks
@arielb1 arielb1 added the regression-from-stable-to-beta Performance or correctness regression from stable to beta. label Dec 3, 2016
alexcrichton added a commit that referenced this issue Dec 15, 2016
[beta] Work around a borrow surviving too long (fixes #37686)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
E-easy Call for participation: Easy difficulty. Experience needed to fix: Not much. Good first issue. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ regression-from-stable-to-beta Performance or correctness regression from stable to beta.
Projects
None yet
Development

No branches or pull requests

3 participants