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

Recursive struct hangs compilation on Nightly 03-19 #32417

Closed
cengiz-io opened this issue Mar 22, 2016 · 2 comments
Closed

Recursive struct hangs compilation on Nightly 03-19 #32417

cengiz-io opened this issue Mar 22, 2016 · 2 comments
Labels
regression-from-stable-to-nightly Performance or correctness regression from stable to nightly.

Comments

@cengiz-io
Copy link
Contributor

Hello!

I'm on OSX 10.11.3.

A recursive struct like this throws a nice error in stable

struct Line {
    start: Line,
    end: Line,
}

fn main() {
}

However, in 2016-03-19 it just hangs rustc.

I tried to gather some details using lldb

(lldb) process attach --pid 58606
Process 58606 stopped
* thread #1: tid = 0x3928a9, 0x00007fff9c49b206 libsystem_kernel.dylib`__semwait_signal + 10, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
    frame #0: 0x00007fff9c49b206 libsystem_kernel.dylib`__semwait_signal + 10
libsystem_kernel.dylib`__semwait_signal:
->  0x7fff9c49b206 <+10>: jae    0x7fff9c49b210            ; <+20>
    0x7fff9c49b208 <+12>: movq   %rax, %rdi
    0x7fff9c49b20b <+15>: jmp    0x7fff9c495c02            ; cerror
    0x7fff9c49b210 <+20>: retq

Executable module set to "/usr/local/bin/rustc".
Architecture set to: x86_64h-apple-macosx.
(lldb) thread backtrace all
* thread #1: tid = 0x3928a9, 0x00007fff9c49b206 libsystem_kernel.dylib`__semwait_signal + 10, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
  * frame #0: 0x00007fff9c49b206 libsystem_kernel.dylib`__semwait_signal + 10
    frame #1: 0x00007fff926e7c27 libsystem_pthread.dylib`pthread_join + 444
    frame #2: 0x000000010ae5955e libstd-18402db3.dylib`sys::thread::Thread::join::h0209efa0d5ad7236czy + 14
    frame #3: 0x0000000106961325 librustc_driver-18402db3.dylib`run::h6b4b5eb66973e302OLc + 2725
    frame #4: 0x000000010698921b librustc_driver-18402db3.dylib`main::h714cd508a226d964R0d + 1115
    frame #5: 0x000000010ae59aa3 libstd-18402db3.dylib`sys_common::unwind::try::try_fn::h12338358783828243857 + 35
    frame #6: 0x000000010ae4e79c libstd-18402db3.dylib`__rust_try + 12
    frame #7: 0x000000010ae59959 libstd-18402db3.dylib`rt::lang_start::h59eb5c015962608228y + 505
    frame #8: 0x000000010695aec4 rustc`start + 52

  thread #2: tid = 0x3928aa, 0x0000000107867173 librustc-18402db3.dylib`middle::subst::Substs$LT$$u27$tcx$GT$...std..hash..Hash::hash::h930124296078282112 + 563, name = 'rustc'
    frame #0: 0x0000000107867173 librustc-18402db3.dylib`middle::subst::Substs$LT$$u27$tcx$GT$...std..hash..Hash::hash::h930124296078282112 + 563
    frame #1: 0x000000010787f9a1 librustc-18402db3.dylib`collections::hash::set::HashSet$LT$T$C$$u20$S$GT$::insert::h16525620572284354841 + 129
    frame #2: 0x0000000107881044 librustc-18402db3.dylib`iter::FilterMap$LT$I$C$$u20$F$GT$.Iterator::next::h10479979705998296605 + 2836
    frame #3: 0x000000010787e7fd librustc-18402db3.dylib`middle::traits::fulfill::process_predicate::hc70860709ec86ab05US + 11293
    frame #4: 0x000000010787aa84 librustc-18402db3.dylib`obligation_forest::ObligationForest$LT$O$C$$u20$T$GT$::process_obligations::h18416070063450621727 + 420
    frame #5: 0x000000010787619d librustc-18402db3.dylib`middle::traits::fulfill::FulfillmentContext$LT$$u27$tcx$GT$::select_where_possible::h817133e3c0e6314baNS + 285
    frame #6: 0x0000000107317355 librustc_typeck-18402db3.dylib`check::FnCtxt$LT$$u27$a$C$$u20$$u27$tcx$GT$::select_obligations_where_possible::h7ea8359c24588fcdiMq + 69
    frame #7: 0x0000000107316a76 librustc_typeck-18402db3.dylib`check::FnCtxt$LT$$u27$a$C$$u20$$u27$tcx$GT$::select_all_obligations_and_apply_defaults::hb16d7cdeef868ac5Ayq + 9606
    frame #8: 0x000000010731768c librustc_typeck-18402db3.dylib`check::FnCtxt$LT$$u27$a$C$$u20$$u27$tcx$GT$::select_all_obligations_or_error::hfdec5f3d4f35bfa6bKq + 60
    frame #9: 0x000000010730df67 librustc_typeck-18402db3.dylib`check::wfcheck::CheckTypeWellFormedVisitor$LT$$u27$ccx$C$$u20$$u27$tcx$GT$.Visitor$LT$$u27$v$GT$::visit_item::h70c5a6a8c34d93e9uXk + 4375
    frame #10: 0x0000000107303ad0 librustc_typeck-18402db3.dylib`check::check_wf_new::h46828c06d7effb2dTIo + 816
    frame #11: 0x00000001072fb864 librustc_typeck-18402db3.dylib`check_crate::h3e3d779ef330fadcCFC + 3204
    frame #12: 0x00000001069a9db2 librustc_driver-18402db3.dylib`driver::phase_3_run_analysis_passes::_$u7b$$u7b$closure$u7d$$u7d$::closure.30095 + 146
    frame #13: 0x00000001069a83ea librustc_driver-18402db3.dylib`middle::ty::context::TyCtxt$LT$$u27$tcx$GT$::create_and_enter::h11812805895441873020 + 8282
    frame #14: 0x00000001069a4dae librustc_driver-18402db3.dylib`driver::phase_3_run_analysis_passes::h5261001332275006052 + 11550
    frame #15: 0x0000000106977df8 librustc_driver-18402db3.dylib`driver::compile_input::he5def18759d9424cPca + 8440
    frame #16: 0x00000001069656f7 librustc_driver-18402db3.dylib`run_compiler::h61ff55f691b932efVMc + 4023
    frame #17: 0x0000000106962ca3 librustc_driver-18402db3.dylib`sys_common::unwind::try::try_fn::h2984156204492186173 + 467
    frame #18: 0x000000010ae4e79c libstd-18402db3.dylib`__rust_try + 12
    frame #19: 0x000000010ae4e724 libstd-18402db3.dylib`sys_common::unwind::inner_try::hbef67b929e699248JDt + 116
    frame #20: 0x000000010696353a librustc_driver-18402db3.dylib`boxed::F.FnBox$LT$A$GT$::call_box::h8793623295134616532 + 394
    frame #21: 0x000000010ae592c9 libstd-18402db3.dylib`sys::thread::Thread::new::thread_start::h68477ad6a3ba8036fvy + 57
    frame #22: 0x00007fff926e6c13 libsystem_pthread.dylib`_pthread_body + 131
    frame #23: 0x00007fff926e6b90 libsystem_pthread.dylib`_pthread_start + 168
    frame #24: 0x00007fff926e4375 libsystem_pthread.dylib`thread_start + 13

Thanks for the great work!

@cengiz-io cengiz-io changed the title Compilation hangs on Nightly 03-19 Recursive struct hangs compilation on Nightly 03-19 Mar 22, 2016
@sfackler sfackler added the regression-from-stable-to-nightly Performance or correctness regression from stable to nightly. label Mar 22, 2016
@aturon
Copy link
Member

aturon commented Mar 22, 2016

cc @nikomatsakis

@nikomatsakis
Copy link
Contributor

dup of #32326 -- thanks for the report!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
regression-from-stable-to-nightly Performance or correctness regression from stable to nightly.
Projects
None yet
Development

No branches or pull requests

4 participants