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

Large locals can cause OOMs during the ConstProp pass #66397

Closed
wesleywiser opened this issue Nov 14, 2019 · 1 comment · Fixed by #66394
Closed

Large locals can cause OOMs during the ConstProp pass #66397

wesleywiser opened this issue Nov 14, 2019 · 1 comment · Fixed by #66394
Assignees
Labels
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-crash Issue: The compiler crashes (SIGSEGV, SIGABRT, etc). Use I-ICE instead when the compiler panics. 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

@wesleywiser
Copy link
Member

The following ICEs on beta and nightly:

fn main() {
    [0; 4 * 1024 * 1024 * 1024 * 1024];
}

(playground)

gdb backtrace
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x00007ffff3de055d in __GI_abort () at abort.c:79
#2  0x00007ffff403f9e7 in std::sys::unix::abort_internal () at src/libstd/sys/unix/mod.rs:155
#3  0x00007ffff402612d in rust_oom (layout=...) at src/libstd/alloc.rs:217
#4  0x00007ffff405de67 in alloc::alloc::handle_alloc_error (layout=...) at src/liballoc/alloc.rs:247
#5  0x00007ffff58a9f56 in alloc::raw_vec::RawVec<T,A>::allocate_in (capacity=17592186044416, zeroed=255, a=...) at /home/wesley/code/rust/rust/src/liballoc/raw_vec.rs:102
#6  alloc::raw_vec::RawVec<T>::with_capacity_zeroed (capacity=17592186044416) at /home/wesley/code/rust/rust/src/liballoc/raw_vec.rs:173
#7  <u8 as alloc::vec::SpecFromElem>::from_elem (elem=0, n=17592186044416) at /home/wesley/code/rust/rust/src/liballoc/vec.rs:1715
#8  alloc::vec::from_elem (elem=0, n=17592186044416) at /home/wesley/code/rust/rust/src/liballoc/vec.rs:1694
#9  rustc::mir::interpret::allocation::Allocation<Tag>::undef (size=..., align=...) at <::alloc::macros::vec macros>:1
#10 0x00007ffff5247c50 in rustc_mir::interpret::memory::Memory<M>::allocate (self=0x7ffff3b55068, size=..., align=..., kind=rustc_mir::interpret::memory::MemoryKind::Stack)
    at src/librustc_mir/interpret/memory.rs:172
#11 0x00007ffff528be1e in rustc_mir::interpret::place::<impl rustc_mir::interpret::eval_context::InterpCx<M>>::force_allocation_maybe_sized (self=<optimized out>, place=..., meta=...)
    at src/librustc_mir/interpret/place.rs:994
#12 0x00007ffff52af57f in rustc_mir::interpret::place::<impl rustc_mir::interpret::eval_context::InterpCx<M>>::force_allocation (self=0x7ffff3b55040, place=...) at src/librustc_mir/interpret/place.rs:1023
#13 rustc_mir::interpret::step::<impl rustc_mir::interpret::eval_context::InterpCx<M>>::eval_rvalue_into_place (self=0x7ffff3b55040, rvalue=<optimized out>, place=<optimized out>)
    at src/librustc_mir/interpret/step.rs:210
#14 0x00007ffff54ab6f4 in rustc_mir::transform::const_prop::ConstPropagator::const_prop::{{closure}} (this=0x7ffff3b55040) at src/librustc_mir/transform/const_prop.rs:578
#15 rustc_mir::transform::const_prop::ConstPropagator::use_ecx (self=0x7ffff3b55040, source_info=..., f=...) at src/librustc_mir/transform/const_prop.rs:394
--Type <RET> for more, q to quit, c to continue without paging--c
#16 0x00007ffff52ede17 in rustc_mir::transform::const_prop::ConstPropagator::const_prop (self=0x7ffff3b55040, rvalue=<optimized out>, place_layout=..., source_info=..., place=<optimized out>) at src/librustc_mir/transform/const_prop.rs:576
#17 <rustc_mir::transform::const_prop::ConstPropagator as rustc::mir::visit::MutVisitor>::visit_statement (self=0x7ffff3b55040, statement=<optimized out>, location=...) at src/librustc_mir/transform/const_prop.rs:746
#18 0x00007ffff54a7493 in rustc::mir::visit::MutVisitor::super_basic_block_data (self=0x7ffff3b55040, block=..., data=<optimized out>) at /home/wesley/code/rust/rust/src/librustc/mir/visit.rs:297
#19 rustc::mir::visit::MutVisitor::visit_basic_block_data (self=0x7ffff3b55040, block=..., data=<optimized out>) at /home/wesley/code/rust/rust/src/librustc/mir/visit.rs:81
#20 rustc::mir::visit::MutVisitor::super_body (self=<optimized out>, body=<optimized out>) at /home/wesley/code/rust/rust/src/librustc/mir/visit.rs:255
#21 rustc::mir::visit::MutVisitor::visit_body (self=0x7ffff3b55040, body=0x7ffff3b55b68) at /home/wesley/code/rust/rust/src/librustc/mir/visit.rs:75
#22 0x00007ffff52ebca3 in <rustc_mir::transform::const_prop::ConstProp as rustc_mir::transform::MirPass>::run_pass (self=<optimized out>, tcx=..., source=..., body=<optimized out>) at src/librustc_mir/transform/const_prop.rs:108
#23 0x00007ffff53289de in rustc_mir::transform::run_passes::{{closure}} (pass=...) at src/librustc_mir/transform/mod.rs:175
#24 rustc_mir::transform::run_passes (tcx=..., body=0x7ffff3b55b68, instance=..., promoted=..., mir_phase=rustc::mir::MirPhase::Optimized, passes=...) at src/librustc_mir/transform/mod.rs:182
#25 0x00007ffff5329a6b in rustc_mir::transform::run_optimization_passes (tcx=..., body=0x7ffff3b55b68, def_id=..., promoted=...) at src/librustc_mir/transform/mod.rs:231
#26 0x00007ffff5329e4b in rustc_mir::transform::optimized_mir (tcx=..., def_id=...) at src/librustc_mir/transform/mod.rs:301
#27 0x00007ffff6bad49b in rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::optimized_mir>::compute (tcx=..., key=...) at src/librustc/ty/query/plumbing.rs:944
#28 0x00007ffff6773a18 in rustc::dep_graph::graph::DepGraph::with_task_impl (self=<optimized out>, key=..., cx=..., arg=..., no_tcx=false, task=0x7ffff6bad480 <rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::optimized_mir>::compute>, create_task=0x7ffff6743c20 <core::ops::function::FnOnce::call_once>, finish_task_and_alloc_depnode=0x7ffff6743cf0 <core::ops::function::FnOnce::call_once>, hash_result=<optimized out>) at src/librustc/dep_graph/graph.rs:322
#29 0x00007ffff6a11d26 in rustc::dep_graph::graph::DepGraph::with_task (self=0x2, cx=..., arg=..., task=0x7ffff3b53c10, key=..., hash_result=<optimized out>) at src/librustc/dep_graph/graph.rs:198
#30 rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::force_query_with_job::{{closure}}::{{closure}} (tcx=...) at src/librustc/ty/query/plumbing.rs:526
#31 rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::start_query::{{closure}}::{{closure}} () at src/librustc/ty/query/plumbing.rs:258
#32 rustc::ty::context::tls::enter_context::{{closure}} () at src/librustc/ty/context.rs:1861
#33 rustc::ty::context::tls::set_tlv (value=<optimized out>, f=...) at src/librustc/ty/context.rs:1794
#34 rustc::ty::context::tls::enter_context (context=<optimized out>, f=...) at src/librustc/ty/context.rs:1860
#35 rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::start_query::{{closure}} (current_icx=<optimized out>) at src/librustc/ty/query/plumbing.rs:257
#36 rustc::ty::context::tls::with_related_context::{{closure}} (context=<optimized out>) at src/librustc/ty/context.rs:1967
#37 rustc::ty::context::tls::with_context::{{closure}} (opt_context=...) at src/librustc/ty/context.rs:1950
#38 rustc::ty::context::tls::with_context_opt (f=...) at src/librustc/ty/context.rs:1939
#39 rustc::ty::context::tls::with_context (f=...) at src/librustc/ty/context.rs:1950
#40 rustc::ty::context::tls::with_related_context (f=..., tcx=...) at src/librustc/ty/context.rs:1963
#41 rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::start_query (job=..., diagnostics=..., compute=..., self=...) at src/librustc/ty/query/plumbing.rs:246
#42 rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::force_query_with_job::{{closure}} (diagnostics=...) at src/librustc/ty/query/plumbing.rs:518
#43 rustc::ty::query::plumbing::with_diagnostics (f=...) at src/librustc/ty/query/plumbing.rs:191
#44 rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::force_query_with_job (self=..., key=..., job=..., dep_node=...) at src/librustc/ty/query/plumbing.rs:517
#45 rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query (self=..., span=..., key=...) at src/librustc/ty/query/plumbing.rs:354
#46 0x00007ffff51e2373 in rustc_mir::monomorphize::collector::collect_neighbours (tcx=..., instance=..., output=0x7ffff3b56838) at src/librustc_mir/monomorphize/collector.rs:1254
#47 rustc_mir::monomorphize::collector::collect_items_rec (tcx=..., starting_point=..., visited=0x7ffff3b56b10, recursion_depths=0x7ffff3b568b8, inlining_map=0x7ffff3b56a50) at src/librustc_mir/monomorphize/collector.rs:403
#48 0x00007ffff5265bfb in rustc_mir::monomorphize::collector::collect_crate_mono_items::{{closure}}::{{closure}} (root=...) at src/librustc_mir/monomorphize/collector.rs:311
#49 core::iter::traits::iterator::Iterator::for_each::call::{{closure}} (item=...) at /home/wesley/code/rust/rust/src/libcore/iter/traits/iterator.rs:628
#50 core::iter::traits::iterator::Iterator::fold::ok::{{closure}} (acc=<optimized out>, x=...) at /home/wesley/code/rust/rust/src/libcore/iter/traits/iterator.rs:1828
#51 core::iter::traits::iterator::Iterator::try_fold (self=0x7ffff3b56898, f=..., init=<optimized out>) at /home/wesley/code/rust/rust/src/libcore/iter/traits/iterator.rs:1709
#52 core::iter::traits::iterator::Iterator::fold (self=..., f=..., init=<optimized out>) at /home/wesley/code/rust/rust/src/libcore/iter/traits/iterator.rs:1831
#53 core::iter::traits::iterator::Iterator::for_each (self=..., f=...) at /home/wesley/code/rust/rust/src/libcore/iter/traits/iterator.rs:631
#54 rustc_mir::monomorphize::collector::collect_crate_mono_items::{{closure}} () at src/librustc_mir/monomorphize/collector.rs:309
#55 0x00007ffff5265697 in rustc::util::common::time_ext (do_it=<optimized out>, what=..., f=...) at /home/wesley/code/rust/rust/src/librustc/util/common.rs:55
#56 rustc::util::common::time (sess=<optimized out>, what=..., f=...) at /home/wesley/code/rust/rust/src/librustc/util/common.rs:49
#57 0x00007ffff51e14e9 in rustc_mir::monomorphize::collector::collect_crate_mono_items (tcx=..., mode=<optimized out>) at src/librustc_mir/monomorphize/collector.rs:308
#58 0x00007ffff52657f6 in rustc_mir::monomorphize::partitioning::collect_and_partition_mono_items::{{closure}} () at src/librustc_mir/monomorphize/partitioning.rs:889
#59 rustc::util::common::time_ext (do_it=false, what=..., f=...) at /home/wesley/code/rust/rust/src/librustc/util/common.rs:55
#60 rustc::util::common::time (sess=<optimized out>, what=..., f=...) at /home/wesley/code/rust/rust/src/librustc/util/common.rs:49
#61 0x00007ffff58d52d0 in rustc_mir::monomorphize::partitioning::collect_and_partition_mono_items (tcx=..., cnum=...) at src/librustc_mir/monomorphize/partitioning.rs:888
#62 0x00007fffe85e9de0 in rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::collect_and_partition_mono_items>::compute::{{closure}} () at /home/wesley/code/rust/rust/src/librustc/ty/query/plumbing.rs:952
#63 rustc::ty::query::__query_compute::collect_and_partition_mono_items (f=...) at /home/wesley/code/rust/rust/src/librustc/ty/query/plumbing.rs:903
#64 0x00007fffe86a2919 in rustc::dep_graph::graph::DepGraph::with_task_impl (self=<optimized out>, key=<error reading variable: Cannot access memory at address 0x0>, cx=..., arg=..., no_tcx=false, task=0x7fffe86df730 <rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::collect_and_partition_mono_items>::compute>, create_task=0x7fffe869c890 <core::ops::function::FnOnce::call_once>, finish_task_and_alloc_depnode=0x7fffe869c8a0 <core::ops::function::FnOnce::call_once>, hash_result=<optimized out>) at /home/wesley/code/rust/rust/src/librustc/dep_graph/graph.rs:322
#65 0x00007fffe871672e in rustc::dep_graph::graph::DepGraph::with_eval_always_task (self=0x7ffff3b53c10, cx=..., arg=..., task=0x7ffff3b53c10, key=..., hash_result=<optimized out>) at /home/wesley/code/rust/rust/src/librustc/dep_graph/graph.rs:374
#66 rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::force_query_with_job::{{closure}}::{{closure}} (tcx=...) at /home/wesley/code/rust/rust/src/librustc/ty/query/plumbing.rs:520
#67 rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::start_query::{{closure}}::{{closure}} () at /home/wesley/code/rust/rust/src/librustc/ty/query/plumbing.rs:258
#68 rustc::ty::context::tls::enter_context::{{closure}} () at /home/wesley/code/rust/rust/src/librustc/ty/context.rs:1861
#69 rustc::ty::context::tls::set_tlv (value=<optimized out>, f=...) at /home/wesley/code/rust/rust/src/librustc/ty/context.rs:1794
#70 rustc::ty::context::tls::enter_context (context=<optimized out>, f=...) at /home/wesley/code/rust/rust/src/librustc/ty/context.rs:1860
#71 rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::start_query::{{closure}} (current_icx=<optimized out>) at /home/wesley/code/rust/rust/src/librustc/ty/query/plumbing.rs:257
#72 rustc::ty::context::tls::with_related_context::{{closure}} (context=<optimized out>) at /home/wesley/code/rust/rust/src/librustc/ty/context.rs:1967
#73 rustc::ty::context::tls::with_context::{{closure}} (opt_context=...) at /home/wesley/code/rust/rust/src/librustc/ty/context.rs:1950
#74 rustc::ty::context::tls::with_context_opt (f=...) at /home/wesley/code/rust/rust/src/librustc/ty/context.rs:1939
#75 rustc::ty::context::tls::with_context (f=...) at /home/wesley/code/rust/rust/src/librustc/ty/context.rs:1950
#76 rustc::ty::context::tls::with_related_context (f=..., tcx=...) at /home/wesley/code/rust/rust/src/librustc/ty/context.rs:1963
#77 rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::start_query (job=..., diagnostics=..., compute=..., self=...) at /home/wesley/code/rust/rust/src/librustc/ty/query/plumbing.rs:246
#78 rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::force_query_with_job::{{closure}} (diagnostics=...) at /home/wesley/code/rust/rust/src/librustc/ty/query/plumbing.rs:518
#79 rustc::ty::query::plumbing::with_diagnostics (f=...) at /home/wesley/code/rust/rust/src/librustc/ty/query/plumbing.rs:191
#80 rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::force_query_with_job (self=..., key=..., job=..., dep_node=...) at /home/wesley/code/rust/rust/src/librustc/ty/query/plumbing.rs:517
#81 rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query (self=..., span=..., key=...) at /home/wesley/code/rust/rust/src/librustc/ty/query/plumbing.rs:354
#82 0x00007fffe882ec21 in rustc::ty::query::TyCtxtAt::collect_and_partition_mono_items (self=..., key=...) at /home/wesley/code/rust/rust/src/librustc/ty/query/plumbing.rs:1029
#83 rustc::ty::query::<impl rustc::ty::context::TyCtxt>::collect_and_partition_mono_items (self=..., key=...) at /home/wesley/code/rust/rust/src/librustc/ty/query/plumbing.rs:1021
#84 rustc_codegen_ssa::base::codegen_crate (backend=..., tcx=..., metadata=..., need_metadata_module=false) at /home/wesley/code/rust/rust/src/librustc_codegen_ssa/base.rs:519
#85 0x00007fffe869ad5e in <rustc_codegen_llvm::LlvmCodegenBackend as rustc_codegen_utils::codegen_backend::CodegenBackend>::codegen_crate (self=<optimized out>, tcx=..., metadata=..., need_metadata_module=false) at src/librustc_codegen_llvm/lib.rs:281
#86 0x00007ffff454805e in rustc_interface::passes::start_codegen::{{closure}} () at src/librustc_interface/passes.rs:1038
#87 0x00007ffff4542cbe in rustc::util::common::time_ext (do_it=<optimized out>, what=..., f=...) at /home/wesley/code/rust/rust/src/librustc/util/common.rs:55
#88 rustc::util::common::time (sess=<optimized out>, what=..., f=...) at /home/wesley/code/rust/rust/src/librustc/util/common.rs:49
#89 0x00007ffff46b9015 in rustc_interface::passes::start_codegen (codegen_backend=..., tcx=..., outputs=0x7ffff3b5f7c8) at src/librustc_interface/passes.rs:1036
#90 0x00007ffff4552ca0 in rustc_interface::queries::<impl rustc_interface::interface::Compiler>::ongoing_codegen::{{closure}}::{{closure}} (tcx=...) at src/librustc_interface/queries.rs:254
#91 rustc_interface::passes::BoxedGlobalCtxt::enter::{{closure}}::{{closure}} (tcx=...) at src/librustc_interface/passes.rs:773
#92 rustc::ty::context::tls::enter_global::{{closure}} () at /home/wesley/code/rust/rust/src/librustc/ty/context.rs:1893
#93 rustc::ty::context::tls::enter_context::{{closure}} () at /home/wesley/code/rust/rust/src/librustc/ty/context.rs:1861
#94 rustc::ty::context::tls::set_tlv (value=140737282147056, f=...) at /home/wesley/code/rust/rust/src/librustc/ty/context.rs:1794
#95 rustc::ty::context::tls::enter_context (context=0x7ffff3b582f0, f=...) at /home/wesley/code/rust/rust/src/librustc/ty/context.rs:1860
#96 rustc::ty::context::tls::enter_global (gcx=0x7fffec21dca8, f=...) at /home/wesley/code/rust/rust/src/librustc/ty/context.rs:1892
#97 0x00007ffff4657736 in rustc_interface::passes::BoxedGlobalCtxt::enter::{{closure}} (gcx=0x0) at src/librustc_interface/passes.rs:773
#98 rustc_interface::passes::BoxedGlobalCtxt::access::{{closure}} (args=...) at <::rustc_data_structures::box_region::declare_box_region_type macros>:21
#99 0x00007ffff45c852b in rustc_interface::passes::create_global_ctxt::{{closure}} () at src/librustc_interface/passes.rs:836
#100 0x00007ffff46568ea in alloc::boxed::<impl core::ops::generator::Generator for core::pin::Pin<alloc::boxed::Box<G>>>::resume (self=...) at /home/wesley/code/rust/rust/src/liballoc/boxed.rs:1093
#101 rustc_data_structures::box_region::PinnedGenerator<I,A,R>::access (self=<optimized out>, closure=...) at /home/wesley/code/rust/rust/src/librustc_data_structures/box_region.rs:52
#102 rustc_interface::passes::BoxedGlobalCtxt::access (self=<optimized out>, f=...) at <::rustc_data_structures::box_region::declare_box_region_type macros>:24
#103 rustc_interface::passes::BoxedGlobalCtxt::enter (self=0x7ffff3b5f850, f=...) at src/librustc_interface/passes.rs:773
#104 0x00007ffff46501a2 in rustc_interface::queries::<impl rustc_interface::interface::Compiler>::ongoing_codegen::{{closure}} () at src/librustc_interface/queries.rs:248
#105 rustc_interface::queries::Query<T>::compute (self=0x7ffff3b5f860, f=...) at src/librustc_interface/queries.rs:32
#106 0x00007ffff45cb9b4 in rustc_interface::queries::<impl rustc_interface::interface::Compiler>::ongoing_codegen (self=<optimized out>) at src/librustc_interface/queries.rs:246
#107 0x00007ffff44fbebe in rustc_driver::run_compiler::{{closure}} (compiler=0x2) at src/librustc_driver/lib.rs:390
#108 rustc_interface::interface::run_compiler_in_existing_thread_pool (config=..., f=...) at /home/wesley/code/rust/rust/src/librustc_interface/interface.rs:166
#109 0x00007ffff44f12c0 in rustc_interface::interface::run_compiler::{{closure}} () at /home/wesley/code/rust/rust/src/librustc_interface/interface.rs:179
#110 rustc_interface::util::spawn_thread_pool::{{closure}}::{{closure}}::{{closure}}::{{closure}} () at /home/wesley/code/rust/rust/src/librustc_interface/util.rs:189
#111 rustc::ty::context::tls::with_thread_locals::{{closure}}::{{closure}} (current=0x7ffff3b666a8) at /home/wesley/code/rust/rust/src/librustc/ty/context.rs:1849
#112 std::thread::local::LocalKey<T>::try_with (f=..., self=<optimized out>) at /home/wesley/code/rust/rust/src/libstd/thread/local.rs:262
#113 std::thread::local::LocalKey<T>::with (self=<optimized out>, f=...) at /home/wesley/code/rust/rust/src/libstd/thread/local.rs:239
#114 rustc::ty::context::tls::with_thread_locals::{{closure}} (span_dbg=0x7ffff3b666d0) at /home/wesley/code/rust/rust/src/librustc/ty/context.rs:1841
#115 std::thread::local::LocalKey<T>::try_with (self=<optimized out>, f=...) at /home/wesley/code/rust/rust/src/libstd/thread/local.rs:262
#116 std::thread::local::LocalKey<T>::with (self=<optimized out>, f=...) at /home/wesley/code/rust/rust/src/libstd/thread/local.rs:239
#117 0x00007ffff4499f05 in rustc::ty::context::tls::with_thread_locals (f=...) at /home/wesley/code/rust/rust/src/librustc/ty/context.rs:1833
#118 rustc_interface::util::spawn_thread_pool::{{closure}}::{{closure}}::{{closure}} () at /home/wesley/code/rust/rust/src/librustc_interface/util.rs:189
#119 scoped_tls::ScopedKey<T>::set (self=0x7ffff7f755b8 <rustc::ty::context::tls::GCX_PTR>, t=0x7ffff3b61d60, f=...) at /home/wesley/.cargo/registry/src/github.com-1ecc6299db9ec823/scoped-tls-1.0.0/src/lib.rs:137
#120 rustc_interface::util::spawn_thread_pool::{{closure}}::{{closure}} () at /home/wesley/code/rust/rust/src/librustc_interface/util.rs:185
#121 scoped_tls::ScopedKey<T>::set (self=<optimized out>, t=<optimized out>, f=...) at /home/wesley/.cargo/registry/src/github.com-1ecc6299db9ec823/scoped-tls-1.0.0/src/lib.rs:137
#122 syntax::with_globals::{{closure}} () at /home/wesley/code/rust/rust/src/libsyntax/lib.rs:62
#123 scoped_tls::ScopedKey<T>::set (self=<optimized out>, t=<optimized out>, f=...) at /home/wesley/.cargo/registry/src/github.com-1ecc6299db9ec823/scoped-tls-1.0.0/src/lib.rs:137
#124 0x00007ffff44c1fe2 in syntax::with_globals (edition=<optimized out>, f=...) at /home/wesley/code/rust/rust/src/libsyntax/lib.rs:61
#125 0x00007ffff4466586 in rustc_interface::util::spawn_thread_pool::{{closure}} () at /home/wesley/code/rust/rust/src/librustc_interface/util.rs:184
#126 rustc_interface::util::scoped_thread::{{closure}} () at /home/wesley/code/rust/rust/src/librustc_interface/util.rs:161
#127 std::sys_common::backtrace::__rust_begin_short_backtrace (f=...) at /home/wesley/code/rust/rust/src/libstd/sys_common/backtrace.rs:129
#128 0x00007ffff4456e99 in std::thread::Builder::spawn_unchecked::{{closure}}::{{closure}} () at /home/wesley/code/rust/rust/src/libstd/thread/mod.rs:469
#129 <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once (self=..., _args=<optimized out>) at /home/wesley/code/rust/rust/src/libstd/panic.rs:317
#130 std::panicking::try::do_call (data=<optimized out>) at /home/wesley/code/rust/rust/src/libstd/panicking.rs:287
#131 0x00007ffff404bee4 in __rust_maybe_catch_panic (f=0x0, data=0x2 <error: Cannot access memory at address 0x2>, data_ptr=0x7ffff3b65960, vtable_ptr=0x7ffff3b65968) at src/libpanic_unwind/lib.rs:79
#132 0x00007ffff4456aea in std::panicking::try (f=...) at /home/wesley/code/rust/rust/src/libstd/panicking.rs:265
#133 0x00007ffff445360e in std::panic::catch_unwind (f=<error reading variable: access outside bounds of object referenced via synthetic pointer>) at /home/wesley/code/rust/rust/src/libstd/panic.rs:396
#134 std::thread::Builder::spawn_unchecked::{{closure}} () at /home/wesley/code/rust/rust/src/libstd/thread/mod.rs:468
#135 core::ops::function::FnOnce::call_once{{vtable-shim}} () at /home/wesley/code/rust/rust/src/libcore/ops/function.rs:227
#136 0x00007ffff40433ef in <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once (self=..., args=<optimized out>) at /home/wesley/code/rust/rust/src/liballoc/boxed.rs:942
#137 0x00007ffff3fffa70 in <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once (self=0x555555559d10, args=<optimized out>) at /home/wesley/code/rust/rust/src/liballoc/boxed.rs:942
#138 std::sys_common::thread::start_thread (main=0x555555559d10 "\020\306UUUU") at src/libstd/sys_common/thread.rs:13
#139 0x00007ffff4005336 in std::sys::unix::thread::Thread::new::thread_start (main=0x2) at src/libstd/sys/unix/thread.rs:79
#140 0x00007ffff3cd0f2a in start_thread (arg=<optimized out>) at pthread_create.c:479
#141 0x00007ffff3eba4af in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
@wesleywiser wesleywiser added I-crash Issue: The compiler crashes (SIGSEGV, SIGABRT, etc). Use I-ICE instead when the compiler panics. 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. A-mir Area: Mid-level IR (MIR) - https://blog.rust-lang.org/2016/04/19/MIR.html regression-from-stable-to-beta Performance or correctness regression from stable to beta. C-bug Category: This is a bug. labels Nov 14, 2019
@wesleywiser wesleywiser self-assigned this Nov 14, 2019
wesleywiser added a commit to wesleywiser/rust that referenced this issue Nov 14, 2019
@pnkfelix
Copy link
Member

triage: P-high.

@pnkfelix pnkfelix added the P-high High priority label Nov 14, 2019
tmandry added a commit to tmandry/rust that referenced this issue Nov 14, 2019
JohnTitor added a commit to JohnTitor/rust that referenced this issue Nov 15, 2019
bors added a commit that referenced this issue Nov 16, 2019
Fix two OOM issues related to `ConstProp`

Fixes #66342
Fixes #66397

r? @oli-obk
@bors bors closed this as completed in 3732b7a Nov 17, 2019
wesleywiser added a commit to wesleywiser/rust that referenced this issue Dec 6, 2019
Mark-Simulacrum pushed a commit to Mark-Simulacrum/rust that referenced this issue Dec 6, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
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-crash Issue: The compiler crashes (SIGSEGV, SIGABRT, etc). Use I-ICE instead when the compiler panics. 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

Successfully merging a pull request may close this issue.

2 participants