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 on beta and nightly: index out of bounds in RestoreSubsliceArrayMoveOut MIR pass #59048

Closed
koute opened this issue Mar 9, 2019 · 11 comments
Labels
A-codegen Area: Code generation A-MIR Area: Mid-level IR (MIR) - https://blog.rust-lang.org/2016/04/19/MIR.html C-bug Category: This is a bug. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ P-high High priority regression-from-stable-to-beta Performance or correctness regression from stable to beta. regression-from-stable-to-nightly Performance or correctness regression from stable to nightly. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@koute
Copy link
Member

koute commented Mar 9, 2019

The main crate of our profiler (commit d2ec7ae) stopped compiling on beta and nightly. The stable channel works fine, so this is a regression-from-stable-to-nightly and regression-from-stable-to-beta.

Relevant Travis jobs

nightly (failed) - https://travis-ci.org/nokia/not-perf/jobs/504003420
beta (failed) - https://travis-ci.org/nokia/not-perf/jobs/504003419
stable (which compiles successfully) - https://travis-ci.org/nokia/not-perf/jobs/504003418

Reproduction

$ git clone https://github.com/nokia/not-perf.git
$ cd not-perf
$ cargo build

cargo test and cargo check are fine and do not ICE (which is why I haven't noticed this sooner); only cargo build (both debug and release) is broken.

Compiler output

thread 'rustc' panicked at 'index out of bounds: the len is 3 but the index is 3', /rustc/2a65cbeea78c2c79b1030a0012cdea475104a44f/src/libcore/slice/mod.rs:2545:14
stack backtrace:
   0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
             at src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:39
   1: std::sys_common::backtrace::_print
             at src/libstd/sys_common/backtrace.rs:71
   2: std::panicking::default_hook::{{closure}}
             at src/libstd/sys_common/backtrace.rs:59
             at src/libstd/panicking.rs:197
   3: std::panicking::default_hook
             at src/libstd/panicking.rs:211
   4: rustc::util::common::panic_hook
   5: std::panicking::rust_panic_with_hook
             at src/libstd/panicking.rs:478
   6: std::panicking::continue_panic_fmt
             at src/libstd/panicking.rs:381
   7: rust_begin_unwind
             at src/libstd/panicking.rs:308
   8: core::panicking::panic_fmt
             at src/libcore/panicking.rs:85
   9: core::panicking::panic_bounds_check
             at src/libcore/panicking.rs:61
  10: rustc::mir::visit::Visitor::visit_place
  11: <rustc_mir::transform::uniform_array_move_out::RestoreDataCollector as rustc::mir::visit::Visitor<'tcx>>::visit_assign
  12: <rustc_mir::transform::uniform_array_move_out::RestoreSubsliceArrayMoveOut as rustc_mir::transform::MirPass>::run_pass
  13: rustc_mir::transform::run_passes::{{closure}}
  14: rustc_mir::transform::run_passes
  15: rustc_mir::transform::optimized_mir
  16: rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors<'tcx> for rustc::ty::query::queries::optimized_mir<'tcx>>::compute
  17: rustc::dep_graph::graph::DepGraph::with_task_impl
  18: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt<'a, 'gcx, 'tcx>>::get_query
  19: rustc_mir::monomorphize::collector::collect_items_rec
  20: rustc_mir::monomorphize::collector::collect_items_rec
  21: rustc_mir::monomorphize::collector::collect_items_rec
  22: rustc_mir::monomorphize::collector::collect_items_rec
  23: rustc_mir::monomorphize::collector::collect_items_rec
  24: rustc_mir::monomorphize::collector::collect_items_rec
  25: rustc_mir::monomorphize::collector::collect_crate_mono_items::{{closure}}
  26: rustc::util::common::time
  27: rustc_mir::monomorphize::collector::collect_crate_mono_items
  28: rustc::util::common::time
  29: rustc_mir::monomorphize::partitioning::collect_and_partition_mono_items
  30: rustc::ty::query::__query_compute::collect_and_partition_mono_items
  31: rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors<'tcx> for rustc::ty::query::queries::collect_and_partition_mono_items<'tcx>>::compute
  32: rustc::dep_graph::graph::DepGraph::with_task_impl
  33: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt<'a, 'gcx, 'tcx>>::get_query
  34: rustc_codegen_ssa::base::codegen_crate
  35: <rustc_codegen_llvm::LlvmCodegenBackend as rustc_codegen_utils::codegen_backend::CodegenBackend>::codegen_crate
  36: rustc::util::common::time
  37: rustc_driver::driver::phase_4_codegen
  38: <std::thread::local::LocalKey<T>>::with
  39: rustc::ty::context::TyCtxt::create_and_enter
  40: rustc_driver::driver::compile_input
  41: rustc_driver::run_compiler_with_pool
  42: <scoped_tls::ScopedKey<T>>::set
  43: rustc_driver::run_compiler
  44: syntax::with_globals
  45: __rust_maybe_catch_panic
             at src/libpanic_unwind/lib.rs:87
  46: <F as alloc::boxed::FnBox<A>>::call_box
  47: std::sys::unix::thread::Thread::new::thread_start
             at /rustc/2a65cbeea78c2c79b1030a0012cdea475104a44f/src/liballoc/boxed.rs:759
             at src/libstd/sys_common/thread.rs:14
             at src/libstd/sys/unix/thread.rs:80
  48: start_thread
  49: clone
query stack during panic:
#0 [optimized_mir] processing `ps::wait_for_process`
#1 [collect_and_partition_mono_items] collect_and_partition_mono_items
end of query stack
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: rustc 1.35.0-nightly (2a65cbeea 2019-03-08) running on x86_64-unknown-linux-gnu
note: compiler flags: -C debuginfo=2 -C incremental --crate-type bin
note: some of the compiler flags provided by cargo are hidden
error: Could not compile `nperf`.

Affected rustc versions

rustc 1.35.0-nightly (2a65cbe 2019-03-08)
rustc 1.34.0-beta.1 (744b374 2019-02-26)

@Centril Centril added I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ regression-from-stable-to-nightly Performance or correctness regression from stable to nightly. regression-from-stable-to-beta Performance or correctness regression from stable to beta. labels Mar 9, 2019
@jonas-schievink jonas-schievink added I-nominated T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. A-MIR Area: Mid-level IR (MIR) - https://blog.rust-lang.org/2016/04/19/MIR.html C-bug Category: This is a bug. labels Mar 9, 2019
@Centril Centril added A-codegen Area: Code generation C-bug Category: This is a bug. I-nominated T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. and removed C-bug Category: This is a bug. I-nominated T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Mar 9, 2019
@estebank
Copy link
Contributor

estebank commented Mar 9, 2019

Interestingly, running with RUST_LOG=debug, I don't get the panic, but a cycle error:

DEBUG 2019-03-09T19:35:06Z: rustc_typeck::astconv: instantiate_poly_trait_ref(TraitRef { path: path(Iterator<Item = PathBuf>), hir_ref_id: HirId { owner: DefIndex(1:115), local_id: 5 } }, def_id=DefId(2/0:2158 ~ core[284b]::iter[0]::traits[0]::iterator[0]::Iterator[0]))
DEBUG 2019-03-09T19:35:06Z: rustc_typeck::astconv: create_substs_for_ast_trait_ref(trait_segment=PathSegment { ident: Iterator#0, hir_id: Some(HirId { owner: DefIndex(1:115), local_id: 4 }), def: Some(Trait(DefId(2/0:2158 ~ core[284b]::iter[0]::traits[0]::iterator[0]::Iterator[0]))), args: Some(GenericArgs { args: [], bindings: [TypeBinding { hir_id: HirId { owner: DefIndex(1:115), local_id: 1 }, ident: Item#0, ty: type(PathBuf), span: src/mount_info.rs:226:91: 226:105 }], parenthesized: false }), infer_types: false })
error[E0391]: cycle detected when processing `mount_info::<impl at src/mount_info.rs:195:1: 246:2>::resolve::{{impl-Trait}}`
   --> src/mount_info.rs:226:76
    |
226 |     pub fn resolve< 'a, P: AsRef< Path > >( &'a self, path: P ) -> Option< impl Iterator< Item = PathBuf > + 'a > {
    |                                                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
note: ...which requires processing `mount_info::<impl at src/mount_info.rs:195:1: 246:2>::resolve::{{impl-Trait}}`...
   --> src/mount_info.rs:226:76
    |
226 |     pub fn resolve< 'a, P: AsRef< Path > >( &'a self, path: P ) -> Option< impl Iterator< Item = PathBuf > + 'a > {
    |                                                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: ...which requires processing `mount_info::<impl at src/mount_info.rs:195:1: 246:2>::resolve::{{impl-Trait}}`...
   --> src/mount_info.rs:226:76
    |
226 |     pub fn resolve< 'a, P: AsRef< Path > >( &'a self, path: P ) -> Option< impl Iterator< Item = PathBuf > + 'a > {
    |                                                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    = note: ...which again requires processing `mount_info::<impl at src/mount_info.rs:195:1: 246:2>::resolve::{{impl-Trait}}`, completing the cycle
note: cycle used when processing `mount_info::<impl at src/mount_info.rs:195:1: 246:2>::resolve`
   --> src/mount_info.rs:226:5
    |
226 |     pub fn resolve< 'a, P: AsRef< Path > >( &'a self, path: P ) -> Option< impl Iterator< Item = PathBuf > + 'a > {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
DEBUG 2019-03-09T19:35:06Z: rustc_typeck::astconv: create_substs_for_ast_path(def_id=DefId(2/0:2158 ~ core[284b]::iter[0]::traits[0]::iterator[0]::Iterator[0]), self_ty=Some(impl ?Sized), generic_args=GenericArgs { args: [], bindings: [TypeBinding { hir_id: HirId { owner: DefIndex(1:115), local_id: 1 }, ident: Item#0, ty: type(PathBuf), span: src/mount_info.rs:226:91: 226:105 }], parenthesized: false })
DEBUG 2019-03-09T19:35:06Z: rustc_typeck::astconv: check_kind_count: kind: lifetime required: 0 permitted: 0 provided: 0 offset: 0
DEBUG 2019-03-09T19:35:06Z: rustc_typeck::astconv: check_kind_count: kind: const required: 0 permitted: 0 provided: 0 offset: 0
DEBUG 2019-03-09T19:35:06Z: rustc_typeck::astconv: check_kind_count: kind: type required: 0 permitted: 0 provided: 0 offset: 0
DEBUG 2019-03-09T19:35:06Z: rustc::ty::fold: HasTypeFlagsVisitor: t=impl ?Sized t.flags=HAS_PARAMS | HAS_RE_EARLY_BOUND | HAS_FREE_REGIONS | HAS_PROJECTION | HAS_FREE_LOCAL_NAMES self.flags=KEEP_IN_LOCAL_TCX
DEBUG 2019-03-09T19:35:06Z: rustc_typeck::astconv: ast_ty_to_ty(id=HirId { owner: DefIndex(1:115), local_id: 2 }, ast_ty=type(PathBuf) ty_ty=Path(Resolved(None, path(PathBuf))))
DEBUG 2019-03-09T19:35:06Z: rustc_typeck::astconv: ast_ty_to_ty: maybe_qself=None path=path(PathBuf)
DEBUG 2019-03-09T19:35:06Z: rustc_typeck::astconv: def_to_ty(def=Struct(DefId(1/0:5192 ~ std[c57b]::path[0]::PathBuf[0])), opt_self_ty=None, path_segments=[PathSegment { ident: PathBuf#0, hir_id: Some(HirId { owner: DefIndex(1:115), local_id: 3 }), def: Some(Err), args: None, infer_types: false }])
DEBUG 2019-03-09T19:35:06Z: rustc_typeck::astconv: create_substs_for_ast_path(def_id=DefId(1/0:5192 ~ std[c57b]::path[0]::PathBuf[0]), self_ty=None, generic_args=GenericArgs { args: [], bindings: [], parenthesized: false })
DEBUG 2019-03-09T19:35:06Z: rustc_typeck::astconv: check_kind_count: kind: lifetime required: 0 permitted: 0 provided: 0 offset: 0
DEBUG 2019-03-09T19:35:06Z: rustc_typeck::astconv: check_kind_count: kind: const required: 0 permitted: 0 provided: 0 offset: 0
DEBUG 2019-03-09T19:35:06Z: rustc_typeck::astconv: check_kind_count: kind: type required: 0 permitted: 0 provided: 0 offset: 0
DEBUG 2019-03-09T19:35:06Z: rustc_typeck::astconv: create_substs_for_ast_path(generic_params=Generics { parent: None, parent_count: 0, params: [], param_def_id_to_index: {}, has_self: false, has_late_bound_regions: None }, self_ty=None) -> []
DEBUG 2019-03-09T19:35:06Z: rustc::ty::fold: HasTypeFlagsVisitor: t=std::path::PathBuf t.flags=(empty) self.flags=HAS_PARAMS | HAS_SELF | HAS_RE_EARLY_BOUND | NEEDS_SUBST
DEBUG 2019-03-09T19:35:06Z: rustc_typeck::astconv: create_substs_for_ast_path(generic_params=Generics { parent: None, parent_count: 0, params: [Type(Self, DefId(2/0:2158 ~ core[284b]::iter[0]::traits[0]::iterator[0]::Iterator[0]), 0)], param_def_id_to_index: {DefId(2/0:2158 ~ core[284b]::iter[0]::traits[0]::iterator[0]::Iterator[0]): 0}, has_self: true, has_late_bound_regions: None }, self_ty=Some(impl ?Sized)) -> [impl ?Sized]
DEBUG 2019-03-09T19:35:06Z: rustc_typeck::astconv: late_bound_in_trait_ref = {}
DEBUG 2019-03-09T19:35:06Z: rustc_typeck::astconv: late_bound_in_ty = {}
DEBUG 2019-03-09T19:35:06Z: rustc::middle::stability: stability: inspecting def_id=DefId(2/0:2159 ~ core[284b]::iter[0]::traits[0]::iterator[0]::Iterator[0]::Item[0]) span=src/mount_info.rs:226:91: 226:105 of stability=Some(Stability { level: Stable { since: 1.0.0 }, feature: rust1, rustc_depr: None, const_stability: None, promotable: false })
DEBUG 2019-03-09T19:35:06Z: rustc_typeck::astconv: instantiate_poly_trait_ref(TraitRef { path: path(Iterator<Item = PathBuf>), hir_ref_id: HirId { owner: DefIndex(1:115), local_id: 5 } }, projections=[(Binder(ProjectionPredicate(ProjectionTy { substs: [impl ?Sized], item_def_id: DefId(2/0:2159 ~ core[284b]::iter[0]::traits[0]::iterator[0]::Iterator[0]::Item[0]) }, std::path::PathBuf)), src/mount_info.rs:226:91: 226:105)]) -> Binder(<impl ?Sized as std::iter::Iterator>)
DEBUG 2019-03-09T19:35:06Z: rustc_typeck::astconv: ast_region_to_region(lifetime=lifetime(HirId { owner: DefIndex(1:115), local_id: 6 }: 'a)) yields ReEarlyBound(1, 'a)
DEBUG 2019-03-09T19:35:06Z: rustc::ty::fold: HasTypeFlagsVisitor: t=impl ?Sized t.flags=HAS_PARAMS | HAS_RE_EARLY_BOUND | HAS_FREE_REGIONS | HAS_PROJECTION | HAS_FREE_LOCAL_NAMES self.flags=KEEP_IN_LOCAL_TCX
error[E0391]: cycle detected when processing `mount_info::<impl at src/mount_info.rs:195:1: 246:2>::resolve::{{impl-Trait}}`
   --> src/mount_info.rs:226:76
    |
226 |     pub fn resolve< 'a, P: AsRef< Path > >( &'a self, path: P ) -> Option< impl Iterator< Item = PathBuf > + 'a > {
    |                                                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
note: ...which requires processing `mount_info::<impl at src/mount_info.rs:195:1: 246:2>::resolve::{{impl-Trait}}`...
   --> src/mount_info.rs:226:76
    |
226 |     pub fn resolve< 'a, P: AsRef< Path > >( &'a self, path: P ) -> Option< impl Iterator< Item = PathBuf > + 'a > {
    |                                                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    = note: ...which again requires processing `mount_info::<impl at src/mount_info.rs:195:1: 246:2>::resolve::{{impl-Trait}}`, completing the cycle
note: cycle used when processing `mount_info::<impl at src/mount_info.rs:195:1: 246:2>::resolve`
   --> src/mount_info.rs:226:5
    |
226 |     pub fn resolve< 'a, P: AsRef< Path > >( &'a self, path: P ) -> Option< impl Iterator< Item = PathBuf > + 'a > {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
DEBUG 2019-03-09T19:35:06Z: rustc_typeck::collect: predicates_defined_on: explicit_predicates_of(DefId(0/1:115 ~ nperf[6bb5]::mount_info[0]::{{impl}}[5]::resolve[0]::{{impl-Trait}}[0])) = GenericPredicates([(Binder(TraitPredicate(<impl ?Sized as std::marker::Sized>)), src/mount_info.rs:226:76: 226:112), (Binder(OutlivesPredicate(impl ?Sized, ReEarlyBound(1, 'a))), src/mount_info.rs:226:110: 226:112), (Binder(TraitPredicate(<impl ?Sized as std::iter::Iterator>)), src/mount_info.rs:226:81: 226:107), (Binder(ProjectionPredicate(ProjectionTy { substs: [impl ?Sized], item_def_id: DefId(2/0:2159 ~ core[284b]::iter[0]::traits[0]::iterator[0]::Iterator[0]::Item[0]) }, std::path::PathBuf)), src/mount_info.rs:226:91: 226:105)])
DEBUG 2019-03-09T19:35:06Z: rustc_typeck::collect: predicates_defined_on(DefId(0/1:115 ~ nperf[6bb5]::mount_info[0]::{{impl}}[5]::resolve[0]::{{impl-Trait}}[0])) = GenericPredicates([(Binder(TraitPredicate(<impl ?Sized as std::marker::Sized>)), src/mount_info.rs:226:76: 226:112), (Binder(OutlivesPredicate(impl ?Sized, ReEarlyBound(1, 'a))), src/mount_info.rs:226:110: 226:112), (Binder(TraitPredicate(<impl ?Sized as std::iter::Iterator>)), src/mount_info.rs:226:81: 226:107), (Binder(ProjectionPredicate(ProjectionTy { substs: [impl ?Sized], item_def_id: DefId(2/0:2159 ~ core[284b]::iter[0]::traits[0]::iterator[0]::Iterator[0]::Item[0]) }, std::path::PathBuf)), src/mount_info.rs:226:91: 226:105)])
error[E0391]: cycle detected when processing `mount_info::<impl at src/mount_info.rs:195:1: 246:2>::resolve::{{impl-Trait}}`
   --> src/mount_info.rs:226:76
    |
226 |     pub fn resolve< 'a, P: AsRef< Path > >( &'a self, path: P ) -> Option< impl Iterator< Item = PathBuf > + 'a > {
    |                                                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = note: ...which again requires processing `mount_info::<impl at src/mount_info.rs:195:1: 246:2>::resolve::{{impl-Trait}}`, completing the cycle
note: cycle used when processing `mount_info::<impl at src/mount_info.rs:195:1: 246:2>::resolve`
   --> src/mount_info.rs:226:5
    |
226 |     pub fn resolve< 'a, P: AsRef< Path > >( &'a self, path: P ) -> Option< impl Iterator< Item = PathBuf > + 'a > {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
DEBUG 2019-03-09T19:35:06Z: rustc_typeck::collect: predicates_of(def_id=DefId(0/1:115 ~ nperf[6bb5]::mount_info[0]::{{impl}}[5]::resolve[0]::{{impl-Trait}}[0])) = GenericPredicates([(Binder(TraitPredicate(<impl ?Sized as std::marker::Sized>)), src/mount_info.rs:226:76: 226:112), (Binder(OutlivesPredicate(impl ?Sized, ReEarlyBound(1, 'a))), src/mount_info.rs:226:110: 226:112), (Binder(TraitPredicate(<impl ?Sized as std::iter::Iterator>)), src/mount_info.rs:226:81: 226:107), (Binder(ProjectionPredicate(ProjectionTy { substs: [impl ?Sized], item_def_id: DefId(2/0:2159 ~ core[284b]::iter[0]::traits[0]::iterator[0]::Iterator[0]::Item[0]) }, std::path::PathBuf)), src/mount_info.rs:226:91: 226:105)])
thread 'rustc' has overflowed its stack
fatal runtime error: stack overflow
[2019-03-09T19:37:29Z DEBUG cargo] exit_with_error; err=CliError { error: Some(ProcessError { desc: "process didn\'t exit successfully: `rustc --crate-name nperf src/main.rs --color never --crate-type bin --emit=dep-info,link -C debuginfo=2 --cfg \'feature=\"default\"\' --cfg \'feature=\"logging\"\' --cfg \'feature=\"nwind\"\' -C metadata=f040a09e21ff6e26 -C extra-filename=-f040a09e21ff6e26 --out-dir /Users/ekuber/personal/not-perf/target/debug/deps -C incremental=/Users/ekuber/personal/not-perf/target/debug/incremental -L dependency=/Users/ekuber/personal/not-perf/target/debug/deps --extern chrono=/Users/ekuber/personal/not-perf/target/debug/deps/libchrono-5ff88e354277f83f.rlib --extern env_logger=/Users/ekuber/personal/not-perf/target/debug/deps/libenv_logger-78c077948f2c02ce.rlib --extern lazy_static=/Users/ekuber/personal/not-perf/target/debug/deps/liblazy_static-ad42470069693248.rlib --extern libc=/Users/ekuber/personal/not-perf/target/debug/deps/liblibc-6a79fbdcb2893d3f.rlib --extern log=/Users/ekuber/personal/not-perf/target/debug/deps/liblog-bf648d25a1b76985.rlib --extern nperf=/Users/ekuber/personal/not-perf/target/debug/deps/libnperf-3b4c16f1b25149b2.rlib --extern num_cpus=/Users/ekuber/personal/not-perf/target/debug/deps/libnum_cpus-296401efbf15c812.rlib --extern nwind=/Users/ekuber/personal/not-perf/target/debug/deps/libnwind-520014cbc8c13870.rlib --extern parking_lot=/Users/ekuber/personal/not-perf/target/debug/deps/libparking_lot-4d5bb6c64055548b.rlib --extern perf_event_open=/Users/ekuber/personal/not-perf/target/debug/deps/libperf_event_open-f6968ba9ab7abf76.rlib --extern proc_maps=/Users/ekuber/personal/not-perf/target/debug/deps/libproc_maps-2626b87765fa0129.rlib --extern regex=/Users/ekuber/personal/not-perf/target/debug/deps/libregex-7c1527dad8c6100a.rlib --extern serde=/Users/ekuber/personal/not-perf/target/debug/deps/libserde-1b9624f31c5af207.rlib --extern serde_derive=/Users/ekuber/personal/not-perf/target/debug/deps/libserde_derive-743003eaf65dae3a.dylib --extern serde_json=/Users/ekuber/personal/not-perf/target/debug/deps/libserde_json-88b42f27d496342d.rlib --extern speedy=/Users/ekuber/personal/not-perf/target/debug/deps/libspeedy-a7d7df9a114a8bee.rlib --extern speedy_derive=/Users/ekuber/personal/not-perf/target/debug/deps/libspeedy_derive-af1054e99f3503c8.dylib --extern structopt=/Users/ekuber/personal/not-perf/target/debug/deps/libstructopt-42fb8d13ffa79d89.rlib` (signal: 6, SIGABRT: process abort signal)", exit: Some(ExitStatus(ExitStatus(6))), output: None }

@Dylan-DPC-zz
Copy link

I saw the same issue on a crater run:
Log: https://crater-reports.s3.amazonaws.com/beta-1.34-1/beta-2019-02-27/gh/viperscape.capsule/log.txt

cc @viperscape (though the crate looks abandoned but still keeping you in loop)

@viperscape
Copy link

Thanks for the heads up, it's just a skeleton app for creating basic LDAP connections via a web browser, so it's more of an example. Stable compiles and runs fine.

@pnkfelix
Copy link
Member

triage: P-high due to being stable-to-beta regression and an ICE

@pnkfelix pnkfelix added P-high High priority and removed I-nominated labels Mar 14, 2019
@pnkfelix
Copy link
Member

assigning to @nikomatsakis to bisect.

@nikomatsakis
Copy link
Contributor

Hmm, I am not able to reproduce this with the latest nightly.

@nikomatsakis
Copy link
Contributor

Attempting with beta.

@nikomatsakis
Copy link
Contributor

athena. rustc +nightly -vV
rustc 1.35.0-nightly (82e2f3ec2 2019-03-20)
binary: rustc
commit-hash: 82e2f3ec25a316c7536c33a6b6704366b14cbf2a
commit-date: 2019-03-20
host: x86_64-unknown-linux-gnu
release: 1.35.0-nightly
LLVM version: 8.0
athena. rustc +beta -vV
rustc 1.34.0-beta.5 (d049c7baa 2019-03-19)
binary: rustc
commit-hash: d049c7baa701c412850743c8f1f767e264a225ec
commit-date: 2019-03-19
host: x86_64-unknown-linux-gnu
release: 1.34.0-beta.5
LLVM version: 8.0

yeah I was not able to reproduce, on linux, building the commit d2ec7ae :(

@nikomatsakis nikomatsakis removed their assignment Mar 21, 2019
@nikomatsakis
Copy link
Contributor

I'm unassigning myself for the time being, since my main goal was to bisect here. I will perhaps try to reproduce on another platform (e.g., windows).

But if you can reproduce, can somebody try using https://github.com/rust-lang-nursery/cargo-bisect-rustc to narrow this down to a specific PR?

@lqd
Copy link
Member

lqd commented Mar 22, 2019

(This crate doesn't build on windows AFAICT so don't try to bisect there)

I can reproduce the ICE, and cargo-bisect-rustc seems to narrow this down to:

However, as Niko mentioned, I can't repro either on the latest nightly. I think it has since been fixed some time between nightly-2019-03-10 and nightly-2019-03-15 (the last ones I manually checked).


Update — I've now also bisected the fix:

@oli-obk
Copy link
Contributor

oli-obk commented Mar 25, 2019

Thanks for the ICE and fix bisection.

@oli-obk oli-obk closed this as completed Mar 25, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-codegen Area: Code generation A-MIR Area: Mid-level IR (MIR) - https://blog.rust-lang.org/2016/04/19/MIR.html C-bug Category: This is a bug. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ P-high High priority regression-from-stable-to-beta Performance or correctness regression from stable to beta. regression-from-stable-to-nightly Performance or correctness regression from stable to nightly. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

No branches or pull requests

10 participants