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

IntelliSense gives "No IL" (or crashes) in a certain scenario on macOS #6166

Closed
Colengms opened this issue Sep 18, 2020 · 9 comments
Closed

Comments

@Colengms
Copy link
Contributor

With 1.0.1-insiders, I noticed cpptools become unresponsive, though so far I only repro on macOS (Catalina 10.15.6). Stacks are below. cpptools-srv was at 100%. An IntelliSense update appears to have been stuck. I waited >10 minutes. I have a project that repro's consistently, but reducing it may be difficult.

cpptools

* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
  * frame #0: 0x00007fff6c41f69e libsystem_kernel.dylib`__read_nocancel + 10
    frame #1: 0x00007fff6c36c2cb libsystem_c.dylib`_sread + 16
    frame #2: 0x00007fff6c36b946 libsystem_c.dylib`__srefill1 + 24
    frame #3: 0x00007fff6c36ba68 libsystem_c.dylib`__srget + 14
    frame #4: 0x00007fff6c367d1c libsystem_c.dylib`getc + 52
    frame #5: 0x00007fff695bbbc9 libc++.1.dylib`std::__1::__stdinbuf<char>::__getchar(bool) + 109
    frame #6: 0x0000000109113656 cpptools`std::__1::basic_istream<char, std::__1::char_traits<char> >& std::__1::getline<char, std::__1::char_traits<char>, std::__1::allocator<char> >(std::__1::basic_istream<char, std::__1::char_traits<char> >&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, char) + 150
    frame #7: 0x00000001090d474c cpptools`vscode::message_handler::main_loop() + 1724
    frame #8: 0x00000001090d121e cpptools`main + 206
    frame #9: 0x00007fff6c2dccc9 libdyld.dylib`start + 1
  thread #2
    frame #0: 0x00007fff6c41e81e libsystem_kernel.dylib`read + 10
    frame #1: 0x00000001091be48e cpptools`comm_pipe_nix::read(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) + 94
    frame #2: 0x00000001090a1082 cpptools`bool comm_client::send_request<microsoft::cpp::intellisense::UpdateIntelliSenseRequest, microsoft::cpp::intellisense::UpdateIntelliSenseResponse>(microsoft::cpp::intellisense::UpdateIntelliSenseRequest&, microsoft::cpp::intellisense::UpdateIntelliSenseResponse&, bool) + 498
    frame #3: 0x00000001090a0be4 cpptools`intellisense_client::update_intellisense(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, bool, reparse, bool, bool) + 372
    frame #4: 0x00000001090b0e00 cpptools`std::__1::__function::__func<intellisense_client::queue_update_intellisense(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, bool, reparse, bool, bool, std::__1::function<void (microsoft::cpp::intellisense::UpdateIntelliSenseResponse&&)>, std::__1::function<void ()>)::$_2, std::__1::allocator<intellisense_client::queue_update_intellisense(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, bool, reparse, bool, bool, std::__1::function<void (microsoft::cpp::intellisense::UpdateIntelliSenseResponse&&)>, std::__1::function<void ()>)::$_2>, microsoft::cpp::intellisense::UpdateIntelliSenseResponse ()>::operator()() + 48
    frame #5: 0x00000001090b1e07 cpptools`snapshot_work_queue<microsoft::cpp::intellisense::UpdateIntelliSenseResponse, 250>::worker_proc() + 375
    frame #6: 0x0000000109177de8 cpptools`std::__1::__function::__func<msvc::thread_pool::enqueue(std::__1::function<void ()>, std::__1::future<void>*)::$_2, std::__1::allocator<msvc::thread_pool::enqueue(std::__1::function<void ()>, std::__1::future<void>*)::$_2>, void ()>::operator()() + 24
    frame #7: 0x000000010917610c cpptools`msvc::thread_pool::do_work(unsigned long) + 764
    frame #8: 0x00000001091777c1 cpptools`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, msvc::thread_pool::add_threads()::$_1> >(void*) + 49
    frame #9: 0x00007fff6c4e1109 libsystem_pthread.dylib`_pthread_start + 148
    frame #10: 0x00007fff6c4dcb8b libsystem_pthread.dylib`thread_start + 15
  thread #3
    frame #0: 0x00007fff6c420882 libsystem_kernel.dylib`__psynch_cvwait + 10
    frame #1: 0x00007fff6c4e1425 libsystem_pthread.dylib`_pthread_cond_wait + 698
    frame #2: 0x00000001091c282b cpptools`neosmart::WaitForMultipleEvents(neosmart::neosmart_event_t_**, int, bool, unsigned long long, int&) + 1179
    frame #3: 0x00000001091bdfd5 cpptools`msvc::alertable_event::wait_for_multiple(msvc::alertable_event**, unsigned long, bool, unsigned int) + 325
    frame #4: 0x0000000109175fca cpptools`msvc::thread_pool::do_work(unsigned long) + 442
    frame #5: 0x00000001091777c1 cpptools`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, msvc::thread_pool::add_threads()::$_1> >(void*) + 49
    frame #6: 0x00007fff6c4e1109 libsystem_pthread.dylib`_pthread_start + 148
    frame #7: 0x00007fff6c4dcb8b libsystem_pthread.dylib`thread_start + 15
  thread #4
    frame #0: 0x00007fff6c420882 libsystem_kernel.dylib`__psynch_cvwait + 10
    frame #1: 0x00007fff6c4e1425 libsystem_pthread.dylib`_pthread_cond_wait + 698
    frame #2: 0x00000001091c282b cpptools`neosmart::WaitForMultipleEvents(neosmart::neosmart_event_t_**, int, bool, unsigned long long, int&) + 1179
    frame #3: 0x00000001091bdfd5 cpptools`msvc::alertable_event::wait_for_multiple(msvc::alertable_event**, unsigned long, bool, unsigned int) + 325
    frame #4: 0x0000000109175fca cpptools`msvc::thread_pool::do_work(unsigned long) + 442
    frame #5: 0x00000001091777c1 cpptools`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, msvc::thread_pool::add_threads()::$_1> >(void*) + 49
    frame #6: 0x00007fff6c4e1109 libsystem_pthread.dylib`_pthread_start + 148
    frame #7: 0x00007fff6c4dcb8b libsystem_pthread.dylib`thread_start + 15
  thread #5
    frame #0: 0x00007fff6c420882 libsystem_kernel.dylib`__psynch_cvwait + 10
    frame #1: 0x00007fff6c4e1425 libsystem_pthread.dylib`_pthread_cond_wait + 698
    frame #2: 0x00000001091c282b cpptools`neosmart::WaitForMultipleEvents(neosmart::neosmart_event_t_**, int, bool, unsigned long long, int&) + 1179
    frame #3: 0x00000001091bdfd5 cpptools`msvc::alertable_event::wait_for_multiple(msvc::alertable_event**, unsigned long, bool, unsigned int) + 325
    frame #4: 0x0000000109175fca cpptools`msvc::thread_pool::do_work(unsigned long) + 442
    frame #5: 0x00000001091777c1 cpptools`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, msvc::thread_pool::add_threads()::$_1> >(void*) + 49
    frame #6: 0x00007fff6c4e1109 libsystem_pthread.dylib`_pthread_start + 148
    frame #7: 0x00007fff6c4dcb8b libsystem_pthread.dylib`thread_start + 15
  thread #6
    frame #0: 0x00007fff6c420882 libsystem_kernel.dylib`__psynch_cvwait + 10
    frame #1: 0x00007fff6c4e1425 libsystem_pthread.dylib`_pthread_cond_wait + 698
    frame #2: 0x00000001091c22d4 cpptools`neosmart::UnlockedWaitForEvent(neosmart::neosmart_event_t_*, unsigned long long) + 180
    frame #3: 0x00000001091c234f cpptools`neosmart::WaitForEvent(neosmart::neosmart_event_t_*, unsigned long long) + 63
    frame #4: 0x00000001091bde7c cpptools`msvc::alertable_event::wait(unsigned int) + 28
    frame #5: 0x00000001091776ee cpptools`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, msvc::thread_pool::thread_pool()::$_0> >(void*) + 286
    frame #6: 0x00007fff6c4e1109 libsystem_pthread.dylib`_pthread_start + 148
    frame #7: 0x00007fff6c4dcb8b libsystem_pthread.dylib`thread_start + 15
  thread #7
    frame #0: 0x00007fff6c420882 libsystem_kernel.dylib`__psynch_cvwait + 10
    frame #1: 0x00007fff6c4e1425 libsystem_pthread.dylib`_pthread_cond_wait + 698
    frame #2: 0x00007fff695af592 libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 18
    frame #3: 0x00007fff695dd9ef libc++.1.dylib`std::__1::recursive_timed_mutex::lock() + 101
    frame #4: 0x0000000109098a74 cpptools`bool comm_client::send_request<microsoft::cpp::intellisense::ContainsFileRequest, microsoft::cpp::intellisense::ContainsFileResponse>(microsoft::cpp::intellisense::ContainsFileRequest&, microsoft::cpp::intellisense::ContainsFileResponse&, bool) + 196
    frame #5: 0x0000000109098837 cpptools`intellisense_client::contains_source(char const*) + 279
    frame #6: 0x00000001090b8166 cpptools`intellisense_client_factory::try_to_fetch(char const*, bool, bool) + 454
    frame #7: 0x000000010908b6d1 cpptools`(anonymous namespace)::includes_for_file(vscode::file_uri const&) + 577
    frame #8: 0x000000010908d180 cpptools`vscode::include_auto_complete::cache::populate(vscode::file_uri const&) + 32
    frame #9: 0x00000001090e4766 cpptools`vscode::message_handler::textDocument_didOpen(vscode::DidOpenTextDocumentParams) + 342
    frame #10: 0x00000001090d71ce cpptools`vscode::message_handler::dispatch(vscode::vscode_client_message&&, vscode::vscode_server_message&, vscode::message_handler::msg_proc_thread_token) + 3710
    frame #11: 0x00000001090d6277 cpptools`vscode::message_handler::handle_message(vscode::vscode_client_message&&, vscode::message_handler::msg_proc_thread_token) + 55
    frame #12: 0x000000010913f420 cpptools`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, vscode::message_handler::main_loop()::$_3> >(void*) + 2288
    frame #13: 0x00007fff6c4e1109 libsystem_pthread.dylib`_pthread_start + 148
    frame #14: 0x00007fff6c4dcb8b libsystem_pthread.dylib`thread_start + 15
  thread #8
    frame #0: 0x00007fff6c420882 libsystem_kernel.dylib`__psynch_cvwait + 10
    frame #1: 0x00007fff6c4e1425 libsystem_pthread.dylib`_pthread_cond_wait + 698
    frame #2: 0x00007fff695af592 libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 18
    frame #3: 0x00000001091404f2 cpptools`vscode::message_deque<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, false>::pop_impl(bool) + 82
    frame #4: 0x00000001091403d6 cpptools`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, vscode::message_handler::main_loop()::$_4> >(void*) + 86
    frame #5: 0x00007fff6c4e1109 libsystem_pthread.dylib`_pthread_start + 148
    frame #6: 0x00007fff6c4dcb8b libsystem_pthread.dylib`thread_start + 15
  thread #9
    frame #0: 0x00007fff6c420882 libsystem_kernel.dylib`__psynch_cvwait + 10
    frame #1: 0x00007fff6c4e1425 libsystem_pthread.dylib`_pthread_cond_wait + 698
    frame #2: 0x00007fff695af592 libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 18
    frame #3: 0x0000000109141d33 cpptools`vscode::message_deque<vscode::folding_ranges_params, false>::pop_impl(bool) + 99
    frame #4: 0x0000000109141be9 cpptools`std::__1::__function::__func<vscode::message_handler::main_loop()::$_6, std::__1::allocator<vscode::message_handler::main_loop()::$_6>, void ()>::operator()() + 73
    frame #5: 0x00000001091422d3 cpptools`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::function<void ()> > >(void*) + 51
    frame #6: 0x00007fff6c4e1109 libsystem_pthread.dylib`_pthread_start + 148
    frame #7: 0x00007fff6c4dcb8b libsystem_pthread.dylib`thread_start + 15
  thread #10
    frame #0: 0x00007fff6c420882 libsystem_kernel.dylib`__psynch_cvwait + 10
    frame #1: 0x00007fff6c4e1425 libsystem_pthread.dylib`_pthread_cond_wait + 698
    frame #2: 0x00007fff695af592 libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 18
    frame #3: 0x0000000109141122 cpptools`vscode::message_deque<vscode::browse_engine_update_action, false>::pop_impl(bool) + 82
    frame #4: 0x0000000109140887 cpptools`std::__1::__function::__func<vscode::message_handler::main_loop()::$_5, std::__1::allocator<vscode::message_handler::main_loop()::$_5>, void ()>::operator()() + 119
    frame #5: 0x00000001091422d3 cpptools`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::function<void ()> > >(void*) + 51
    frame #6: 0x00007fff6c4e1109 libsystem_pthread.dylib`_pthread_start + 148
    frame #7: 0x00007fff6c4dcb8b libsystem_pthread.dylib`thread_start + 15
  thread #11
    frame #0: 0x00007fff6c420882 libsystem_kernel.dylib`__psynch_cvwait + 10
    frame #1: 0x00007fff6c4e1425 libsystem_pthread.dylib`_pthread_cond_wait + 698
    frame #2: 0x00007fff695af592 libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 18
    frame #3: 0x0000000109142543 cpptools`vscode::message_deque<vscode::vscode_client_message, false>::pop_impl(bool) + 99
    frame #4: 0x0000000109142429 cpptools`std::__1::__function::__func<vscode::message_handler::main_loop()::$_7, std::__1::allocator<vscode::message_handler::main_loop()::$_7>, void ()>::operator()() + 73
    frame #5: 0x00000001091422d3 cpptools`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::function<void ()> > >(void*) + 51
    frame #6: 0x00007fff6c4e1109 libsystem_pthread.dylib`_pthread_start + 148
    frame #7: 0x00007fff6c4dcb8b libsystem_pthread.dylib`thread_start + 15
  thread #12
    frame #0: 0x00007fff6c420882 libsystem_kernel.dylib`__psynch_cvwait + 10
    frame #1: 0x00007fff6c4e1425 libsystem_pthread.dylib`_pthread_cond_wait + 698
    frame #2: 0x00007fff695af592 libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 18
    frame #3: 0x0000000109142543 cpptools`vscode::message_deque<vscode::vscode_client_message, false>::pop_impl(bool) + 99
    frame #4: 0x0000000109142769 cpptools`std::__1::__function::__func<vscode::message_handler::main_loop()::$_8, std::__1::allocator<vscode::message_handler::main_loop()::$_8>, void ()>::operator()() + 73
    frame #5: 0x00000001091422d3 cpptools`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::function<void ()> > >(void*) + 51
    frame #6: 0x00007fff6c4e1109 libsystem_pthread.dylib`_pthread_start + 148
    frame #7: 0x00007fff6c4dcb8b libsystem_pthread.dylib`thread_start + 15
  thread #13
    frame #0: 0x00007fff6c420882 libsystem_kernel.dylib`__psynch_cvwait + 10
    frame #1: 0x00007fff6c4e1425 libsystem_pthread.dylib`_pthread_cond_wait + 698
    frame #2: 0x00007fff695af592 libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 18
    frame #3: 0x0000000109142e23 cpptools`vscode::message_deque<vscode::message_handler::parse_file_entry, true>::pop_impl(bool) + 99
    frame #4: 0x000000010914291a cpptools`std::__1::__function::__func<vscode::message_handler::main_loop()::$_9, std::__1::allocator<vscode::message_handler::main_loop()::$_9>, void ()>::operator()() + 106
    frame #5: 0x00000001091422d3 cpptools`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::function<void ()> > >(void*) + 51
    frame #6: 0x00007fff6c4e1109 libsystem_pthread.dylib`_pthread_start + 148
    frame #7: 0x00007fff6c4dcb8b libsystem_pthread.dylib`thread_start + 15
  thread #14
    frame #0: 0x00007fff6c420882 libsystem_kernel.dylib`__psynch_cvwait + 10
    frame #1: 0x00007fff6c4e1425 libsystem_pthread.dylib`_pthread_cond_wait + 698
    frame #2: 0x00007fff695af592 libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 18
    frame #3: 0x0000000109142543 cpptools`vscode::message_deque<vscode::vscode_client_message, false>::pop_impl(bool) + 99
    frame #4: 0x0000000109143468 cpptools`std::__1::__function::__func<vscode::message_handler::main_loop()::$_10, std::__1::allocator<vscode::message_handler::main_loop()::$_10>, void ()>::operator()() + 88
    frame #5: 0x00000001091422d3 cpptools`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::function<void ()> > >(void*) + 51
    frame #6: 0x00007fff6c4e1109 libsystem_pthread.dylib`_pthread_start + 148
    frame #7: 0x00007fff6c4dcb8b libsystem_pthread.dylib`thread_start + 15
  thread #15
    frame #0: 0x00007fff6c420882 libsystem_kernel.dylib`__psynch_cvwait + 10
    frame #1: 0x00007fff6c4e1425 libsystem_pthread.dylib`_pthread_cond_wait + 698
    frame #2: 0x00007fff695af592 libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 18
    frame #3: 0x0000000109143682 cpptools`vscode::message_deque<int, false>::pop_impl(bool) + 82
    frame #4: 0x00000001091435dd cpptools`std::__1::__function::__func<vscode::message_handler::main_loop()::$_11, std::__1::allocator<vscode::message_handler::main_loop()::$_11>, void ()>::operator()() + 45
    frame #5: 0x00000001091422d3 cpptools`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::function<void ()> > >(void*) + 51
    frame #6: 0x00007fff6c4e1109 libsystem_pthread.dylib`_pthread_start + 148
    frame #7: 0x00007fff6c4dcb8b libsystem_pthread.dylib`thread_start + 15
  thread #16
    frame #0: 0x00007fff6c420882 libsystem_kernel.dylib`__psynch_cvwait + 10
    frame #1: 0x00007fff6c4e1425 libsystem_pthread.dylib`_pthread_cond_wait + 698
    frame #2: 0x00000001091c22e5 cpptools`neosmart::UnlockedWaitForEvent(neosmart::neosmart_event_t_*, unsigned long long) + 197
    frame #3: 0x00000001091c234f cpptools`neosmart::WaitForEvent(neosmart::neosmart_event_t_*, unsigned long long) + 63
    frame #4: 0x00000001091bde7c cpptools`msvc::alertable_event::wait(unsigned int) + 28
    frame #5: 0x0000000109143c70 cpptools`std::__1::__function::__func<vscode::message_handler::main_loop()::$_12, std::__1::allocator<vscode::message_handler::main_loop()::$_12>, void ()>::operator()() + 976
    frame #6: 0x00000001091422d3 cpptools`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::function<void ()> > >(void*) + 51
    frame #7: 0x00007fff6c4e1109 libsystem_pthread.dylib`_pthread_start + 148
    frame #8: 0x00007fff6c4dcb8b libsystem_pthread.dylib`thread_start + 15
  thread #17
    frame #0: 0x00007fff6c420882 libsystem_kernel.dylib`__psynch_cvwait + 10
    frame #1: 0x00007fff6c4e1425 libsystem_pthread.dylib`_pthread_cond_wait + 698
    frame #2: 0x00007fff695af592 libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 18
    frame #3: 0x00000001096a05db cpptools`run_tag_parser() + 315
    frame #4: 0x000000010962c60f cpptools`process_translation_unit(char const*, int, an_exported_template_file*) + 959
    frame #5: 0x0000000109325369 cpptools`cfe_main(int, char**) + 121
    frame #6: 0x0000000109653c49 cpptools`cfe_main_exception_handler(int, char**) + 9
    frame #7: 0x0000000109325459 cpptools`edg_main(int, char**) + 9
    frame #8: 0x00000001096a3701 cpptools`antlr_parse_routine() + 353
    frame #9: 0x00000001096a3a28 cpptools`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (*)()> >(void*) + 40
    frame #10: 0x00007fff6c4e1109 libsystem_pthread.dylib`_pthread_start + 148
    frame #11: 0x00007fff6c4dcb8b libsystem_pthread.dylib`thread_start + 15
  thread #18
    frame #0: 0x00007fff6c41e81e libsystem_kernel.dylib`read + 10
    frame #1: 0x00000001091be48e cpptools`comm_pipe_nix::read(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) + 94
    frame #2: 0x00000001091745ad cpptools`comm_server::wait_for_requests() + 61
    frame #3: 0x00000001090a9101 cpptools`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, intellisense_client::init()::$_0> >(void*) + 49
    frame #4: 0x00007fff6c4e1109 libsystem_pthread.dylib`_pthread_start + 148
    frame #5: 0x00007fff6c4dcb8b libsystem_pthread.dylib`thread_start + 15
  thread #19
    frame #0: 0x00007fff6c41e81e libsystem_kernel.dylib`read + 10
    frame #1: 0x00000001091be48e cpptools`comm_pipe_nix::read(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) + 94
    frame #2: 0x00000001091745ad cpptools`comm_server::wait_for_requests() + 61
    frame #3: 0x00000001090a9101 cpptools`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, intellisense_client::init()::$_0> >(void*) + 49
    frame #4: 0x00007fff6c4e1109 libsystem_pthread.dylib`_pthread_start + 148
    frame #5: 0x00007fff6c4dcb8b libsystem_pthread.dylib`thread_start + 15
  thread #20
    frame #0: 0x00007fff6c41e81e libsystem_kernel.dylib`read + 10
    frame #1: 0x00000001091be48e cpptools`comm_pipe_nix::read(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) + 94
    frame #2: 0x00000001091745ad cpptools`comm_server::wait_for_requests() + 61
    frame #3: 0x00000001090a9101 cpptools`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, intellisense_client::init()::$_0> >(void*) + 49
    frame #4: 0x00007fff6c4e1109 libsystem_pthread.dylib`_pthread_start + 148
    frame #5: 0x00007fff6c4dcb8b libsystem_pthread.dylib`thread_start + 15
  thread #21
    frame #0: 0x00007fff6c41e81e libsystem_kernel.dylib`read + 10
    frame #1: 0x00000001091be48e cpptools`comm_pipe_nix::read(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) + 94
    frame #2: 0x00000001091745ad cpptools`comm_server::wait_for_requests() + 61
    frame #3: 0x00000001090a9101 cpptools`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, intellisense_client::init()::$_0> >(void*) + 49
    frame #4: 0x00007fff6c4e1109 libsystem_pthread.dylib`_pthread_start + 148
    frame #5: 0x00007fff6c4dcb8b libsystem_pthread.dylib`thread_start + 15

cpptools-srv

* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
  * frame #0: 0x00007fff6c41e81e libsystem_kernel.dylib`read + 10
    frame #1: 0x000000010043e98e cpptools-srv`comm_pipe_nix::read(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) + 94
    frame #2: 0x000000010042cdad cpptools-srv`comm_server::wait_for_requests() + 61
    frame #3: 0x000000010002dbe2 cpptools-srv`main + 1090
    frame #4: 0x00007fff6c2dccc9 libdyld.dylib`start + 1
  thread #2
    frame #0: 0x00007fff6c420882 libsystem_kernel.dylib`__psynch_cvwait + 10
    frame #1: 0x00007fff6c4e1425 libsystem_pthread.dylib`_pthread_cond_wait + 698
    frame #2: 0x0000000100442f1b cpptools-srv`neosmart::WaitForMultipleEvents(neosmart::neosmart_event_t_**, int, bool, unsigned long long, int&) + 1179
    frame #3: 0x000000010043e4d5 cpptools-srv`msvc::alertable_event::wait_for_multiple(msvc::alertable_event**, unsigned long, bool, unsigned int) + 325
    frame #4: 0x000000010042e7ca cpptools-srv`msvc::thread_pool::do_work(unsigned long) + 442
    frame #5: 0x000000010042ffc1 cpptools-srv`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, msvc::thread_pool::add_threads()::$_1> >(void*) + 49
    frame #6: 0x00007fff6c4e1109 libsystem_pthread.dylib`_pthread_start + 148
    frame #7: 0x00007fff6c4dcb8b libsystem_pthread.dylib`thread_start + 15
  thread #3
    frame #0: 0x00007fff6c420882 libsystem_kernel.dylib`__psynch_cvwait + 10
    frame #1: 0x00007fff6c4e1425 libsystem_pthread.dylib`_pthread_cond_wait + 698
    frame #2: 0x0000000100442f1b cpptools-srv`neosmart::WaitForMultipleEvents(neosmart::neosmart_event_t_**, int, bool, unsigned long long, int&) + 1179
    frame #3: 0x000000010043e4d5 cpptools-srv`msvc::alertable_event::wait_for_multiple(msvc::alertable_event**, unsigned long, bool, unsigned int) + 325
    frame #4: 0x000000010042e7ca cpptools-srv`msvc::thread_pool::do_work(unsigned long) + 442
    frame #5: 0x000000010042ffc1 cpptools-srv`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, msvc::thread_pool::add_threads()::$_1> >(void*) + 49
    frame #6: 0x00007fff6c4e1109 libsystem_pthread.dylib`_pthread_start + 148
    frame #7: 0x00007fff6c4dcb8b libsystem_pthread.dylib`thread_start + 15
  thread #4
    frame #0: 0x00007fff6c420882 libsystem_kernel.dylib`__psynch_cvwait + 10
    frame #1: 0x00007fff6c4e1425 libsystem_pthread.dylib`_pthread_cond_wait + 698
    frame #2: 0x0000000100442f1b cpptools-srv`neosmart::WaitForMultipleEvents(neosmart::neosmart_event_t_**, int, bool, unsigned long long, int&) + 1179
    frame #3: 0x000000010043e4d5 cpptools-srv`msvc::alertable_event::wait_for_multiple(msvc::alertable_event**, unsigned long, bool, unsigned int) + 325
    frame #4: 0x000000010042e7ca cpptools-srv`msvc::thread_pool::do_work(unsigned long) + 442
    frame #5: 0x000000010042ffc1 cpptools-srv`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, msvc::thread_pool::add_threads()::$_1> >(void*) + 49
    frame #6: 0x00007fff6c4e1109 libsystem_pthread.dylib`_pthread_start + 148
    frame #7: 0x00007fff6c4dcb8b libsystem_pthread.dylib`thread_start + 15
  thread #5
    frame #0: 0x00007fff6c420882 libsystem_kernel.dylib`__psynch_cvwait + 10
    frame #1: 0x00007fff6c4e1425 libsystem_pthread.dylib`_pthread_cond_wait + 698
    frame #2: 0x00007fff695af592 libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 18
    frame #3: 0x000000010038f351 cpptools-srv`a_compiler_thread::start(edge::query_action_data&) + 209
    frame #4: 0x000000010038ecd7 cpptools-srv`edge::an_edge_translation_unit_impl::reinitialize_without_fallback(bool, snapshot::snapshot_session_t, edge::file_position const&, edge::query_action_data&) + 2215
    frame #5: 0x0000000100389920 cpptools-srv`edge::an_edge_translation_unit_impl::reinitialize(bool, snapshot::snapshot_session_t, edge::file_position const&, edge::query_action_data&) + 80
    frame #6: 0x000000010039376a cpptools-srv`edge::translation_unit::initialize(int, char const**, char const*, char const*, bool, char const*, snapshot::snapshot_session_t, edge::query_action_data&) + 602
    frame #7: 0x000000010000ccb6 cpptools-srv`edge_intellisense_server_impl::create_translation_unit() + 534
    frame #8: 0x00000001000087b7 cpptools-srv`edge_intellisense_server_impl::handle_update_intellisense(microsoft::cpp::intellisense::UpdateIntelliSenseRequest const&) + 71
    frame #9: 0x000000010003109e cpptools-srv`work_queue::worker_proc() + 190
    frame #10: 0x0000000100430968 cpptools-srv`std::__1::__function::__func<msvc::thread_pool::enqueue(std::__1::function<void ()>, std::__1::future<void>*)::$_2, std::__1::allocator<msvc::thread_pool::enqueue(std::__1::function<void ()>, std::__1::future<void>*)::$_2>, void ()>::operator()() + 24
    frame #11: 0x000000010042e90c cpptools-srv`msvc::thread_pool::do_work(unsigned long) + 764
    frame #12: 0x000000010042ffc1 cpptools-srv`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, msvc::thread_pool::add_threads()::$_1> >(void*) + 49
    frame #13: 0x00007fff6c4e1109 libsystem_pthread.dylib`_pthread_start + 148
    frame #14: 0x00007fff6c4dcb8b libsystem_pthread.dylib`thread_start + 15
  thread #6
    frame #0: 0x00007fff6c420882 libsystem_kernel.dylib`__psynch_cvwait + 10
    frame #1: 0x00007fff6c4e1425 libsystem_pthread.dylib`_pthread_cond_wait + 698
    frame #2: 0x00000001004429c4 cpptools-srv`neosmart::UnlockedWaitForEvent(neosmart::neosmart_event_t_*, unsigned long long) + 180
    frame #3: 0x0000000100442a3f cpptools-srv`neosmart::WaitForEvent(neosmart::neosmart_event_t_*, unsigned long long) + 63
    frame #4: 0x000000010043e37c cpptools-srv`msvc::alertable_event::wait(unsigned int) + 28
    frame #5: 0x000000010042feee cpptools-srv`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, msvc::thread_pool::thread_pool()::$_0> >(void*) + 286
    frame #6: 0x00007fff6c4e1109 libsystem_pthread.dylib`_pthread_start + 148
    frame #7: 0x00007fff6c4dcb8b libsystem_pthread.dylib`thread_start + 15
  thread #7
    frame #0: 0x00000001001dce19 cpptools-srv`perform_scheduled_routine_moves() + 169
    frame #1: 0x00000001002d85a4 cpptools-srv`pop_scope_full(int) + 420
    frame #2: 0x00000001002dacb9 cpptools-srv`pop_template_instantiation_scope() + 121
    frame #3: 0x0000000100320f53 cpptools-srv`rescan_template_constant_parameter(a_symbol*, a_symbol*, a_template_param*, a_template_arg*, int, a_constant**) + 531
    frame #4: 0x0000000100266033 cpptools-srv`scan_template_argument_list(a_symbol*, int, int*, long long, long*) + 2403
    frame #5: 0x0000000100268042 cpptools-srv`coalesce_template_class_reference(a_symbol*, long long, int*) + 3762
    frame #6: 0x0000000100269705 cpptools-srv`coalesce_template_id(a_symbol*, a_token_kind, unsigned int, long long, int, int*) + 405
    frame #7: 0x0000000100251931 cpptools-srv`f_is_generalized_identifier_start(long long, a_type*) + 5937
    frame #8: 0x00000001000fe4db cpptools-srv`decl_specifiers(unsigned long, a_decl_parse_state*, a_decl_pos_block*) + 3899
    frame #9: 0x00000001000d09af cpptools-srv`type_name_full(a_decl_parse_state*) + 239
    frame #10: 0x00000001003129e2 cpptools-srv`find_template_class_full(a_symbol*, a_template_arg**, int, a_symbol*, int, int, int, int) + 3938
    frame #11: 0x0000000100311a6f cpptools-srv`find_template_class(a_symbol*, a_template_arg**, int, a_symbol*, int, int, int) + 15
    frame #12: 0x0000000100268550 cpptools-srv`coalesce_template_class_reference(a_symbol*, long long, int*) + 5056
    frame #13: 0x0000000100269705 cpptools-srv`coalesce_template_id(a_symbol*, a_token_kind, unsigned int, long long, int, int*) + 405
    frame #14: 0x0000000100251931 cpptools-srv`f_is_generalized_identifier_start(long long, a_type*) + 5937
    frame #15: 0x00000001000fe4db cpptools-srv`decl_specifiers(unsigned long, a_decl_parse_state*, a_decl_pos_block*) + 3899
    frame #16: 0x00000001000d09af cpptools-srv`type_name_full(a_decl_parse_state*) + 239
    frame #17: 0x00000001003129e2 cpptools-srv`find_template_class_full(a_symbol*, a_template_arg**, int, a_symbol*, int, int, int, int) + 3938
    frame #18: 0x0000000100311a6f cpptools-srv`find_template_class(a_symbol*, a_template_arg**, int, a_symbol*, int, int, int) + 15
    frame #19: 0x0000000100268550 cpptools-srv`coalesce_template_class_reference(a_symbol*, long long, int*) + 5056
    frame #20: 0x0000000100269705 cpptools-srv`coalesce_template_id(a_symbol*, a_token_kind, unsigned int, long long, int, int*) + 405
    frame #21: 0x0000000100251931 cpptools-srv`f_is_generalized_identifier_start(long long, a_type*) + 5937
    frame #22: 0x00000001000c0e51 cpptools-srv`is_type_start_full(int, int, int) + 849
    frame #23: 0x00000001000c1a56 cpptools-srv`is_decl_start(int) + 134
    frame #24: 0x0000000100105102 cpptools-srv`is_decl_not_expr(unsigned short) + 50
    frame #25: 0x000000010011b34f cpptools-srv`scan_expr_full(an_operand*, an_operand*, int, int) + 6207
    frame #26: 0x0000000100129740 cpptools-srv`scan_bool_constant_expression(a_constant*) + 80
    frame #27: 0x00000001000d4253 cpptools-srv`static_assert_declaration(int) + 99
    frame #28: 0x00000001000d73bb cpptools-srv`scan_nonmember_declaration(a_decl_parse_state*, a_source_range*) + 907
    frame #29: 0x00000001002e9ef3 cpptools-srv`decl_statement(int, int*) + 291
    frame #30: 0x00000001002e55ce cpptools-srv`statement(int, int) + 590
    frame #31: 0x00000001002e474a cpptools-srv`compound_statement_full(int, int, int, int, int, a_type**) + 874
    frame #32: 0x00000001001a38d6 cpptools-srv`scan_function_body(a_routine*, a_func_info_block*, unsigned long, a_macro_arg_fixup**, a_macro_arg_fixup**) + 4806
    frame #33: 0x000000010030ee27 cpptools-srv`function_prototype_instantiation(a_symbol*) + 935
    frame #34: 0x000000010032aedc cpptools-srv`template_declaration(a_tmpl_decl_state*) + 11580
    frame #35: 0x0000000100325df4 cpptools-srv`template_or_specialization_declaration_full(a_tmpl_decl_state*, int, a_decl_parse_state*) + 6868
    frame #36: 0x000000010032c1b3 cpptools-srv`template_or_specialization_declaration(a_token_kind*, int, a_source_position*, int, a_decl_parse_state*) + 851
    frame #37: 0x0000000100330eb6 cpptools-srv`template_directive_or_declaration(a_token_kind*, int, a_source_position*) + 838
    frame #38: 0x00000001000d764c cpptools-srv`scan_nonmember_declaration(a_decl_parse_state*, a_source_range*) + 1564
    frame #39: 0x00000001000dfd1e cpptools-srv`namespace_declaration(a_token_kind*, int, int, a_source_position*, a_symbol**) + 4446
    frame #40: 0x00000001000d7d45 cpptools-srv`scan_nonmember_declaration(a_decl_parse_state*, a_source_range*) + 3349
    frame #41: 0x00000001000dfd1e cpptools-srv`namespace_declaration(a_token_kind*, int, int, a_source_position*, a_symbol**) + 4446
    frame #42: 0x00000001000d7d45 cpptools-srv`scan_nonmember_declaration(a_decl_parse_state*, a_source_range*) + 3349
    frame #43: 0x00000001000dd927 cpptools-srv`declaration(int, int, int, int, a_param_id*, a_source_range*) + 311
    frame #44: 0x00000001000dea34 cpptools-srv`linkage_specification(a_decl_parse_state*) + 436
    frame #45: 0x00000001000d748c cpptools-srv`scan_nonmember_declaration(a_decl_parse_state*, a_source_range*) + 1116
    frame #46: 0x00000001000dd927 cpptools-srv`declaration(int, int, int, int, a_param_id*, a_source_range*) + 311
    frame #47: 0x00000001000dea34 cpptools-srv`linkage_specification(a_decl_parse_state*) + 436
    frame #48: 0x00000001000d748c cpptools-srv`scan_nonmember_declaration(a_decl_parse_state*, a_source_range*) + 1116
    frame #49: 0x00000001000ddb39 cpptools-srv`translation_unit() + 393
    frame #50: 0x000000010034f45a cpptools-srv`process_translation_unit(char const*, int, an_exported_template_file*) + 954
    frame #51: 0x00000001000481b9 cpptools-srv`cfe_main(int, char**) + 121
    frame #52: 0x0000000100377219 cpptools-srv`cfe_main_exception_handler(int, char**) + 9
    frame #53: 0x00000001000482a9 cpptools-srv`edg_main(int, char**) + 9
    frame #54: 0x000000010036b06b cpptools-srv`invoke_edge_compiler(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >&) + 9611
    frame #55: 0x0000000100368a1d cpptools-srv`edge_compiler_main(int, char const**) + 109
    frame #56: 0x00000001003bc352 cpptools-srv`preparse(int, char const**, a_scout_store*, edge::translation_unit*) + 242
    frame #57: 0x0000000100392ea8 cpptools-srv`a_compiler_thread::compiler_thread_routine(a_compiler_thread*) + 296
    frame #58: 0x00000001003b318c cpptools-srv`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (*)(a_compiler_thread*), a_compiler_thread*> >(void*) + 44
    frame #59: 0x00007fff6c4e1109 libsystem_pthread.dylib`_pthread_start + 148
    frame #60: 0x00007fff6c4dcb8b libsystem_pthread.dylib`thread_start + 15

cpptools-srv (from another repro)

* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
  * frame #0: 0x00007fff6c41f55e libsystem_kernel.dylib`__ulock_wait + 10
    frame #1: 0x00007fff6c4e25c2 libsystem_pthread.dylib`_pthread_join + 347
    frame #2: 0x00007fff695e65e6 libc++.1.dylib`std::__1::thread::join() + 24
    frame #3: 0x000000010042e1b0 cpptools-srv`msvc::thread_pool::shutdown() + 64
    frame #4: 0x000000010002dbee cpptools-srv`main + 1102
    frame #5: 0x00007fff6c2dccc9 libdyld.dylib`start + 1
    frame #6: 0x00007fff6c2dccc9 libdyld.dylib`start + 1
  thread #2
    frame #0: 0x00007fff6c420882 libsystem_kernel.dylib`__psynch_cvwait + 10
    frame #1: 0x00007fff6c4e1425 libsystem_pthread.dylib`_pthread_cond_wait + 698
    frame #2: 0x00007fff695af592 libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 18
    frame #3: 0x000000010038f351 cpptools-srv`a_compiler_thread::start(edge::query_action_data&) + 209
    frame #4: 0x000000010038ecd7 cpptools-srv`edge::an_edge_translation_unit_impl::reinitialize_without_fallback(bool, snapshot::snapshot_session_t, edge::file_position const&, edge::query_action_data&) + 2215
    frame #5: 0x0000000100389920 cpptools-srv`edge::an_edge_translation_unit_impl::reinitialize(bool, snapshot::snapshot_session_t, edge::file_position const&, edge::query_action_data&) + 80
    frame #6: 0x000000010039376a cpptools-srv`edge::translation_unit::initialize(int, char const**, char const*, char const*, bool, char const*, snapshot::snapshot_session_t, edge::query_action_data&) + 602
    frame #7: 0x000000010000ccb6 cpptools-srv`edge_intellisense_server_impl::create_translation_unit() + 534
    frame #8: 0x00000001000087b7 cpptools-srv`edge_intellisense_server_impl::handle_update_intellisense(microsoft::cpp::intellisense::UpdateIntelliSenseRequest const&) + 71
    frame #9: 0x000000010003109e cpptools-srv`work_queue::worker_proc() + 190
    frame #10: 0x0000000100430968 cpptools-srv`std::__1::__function::__func<msvc::thread_pool::enqueue(std::__1::function<void ()>, std::__1::future<void>*)::$_2, std::__1::allocator<msvc::thread_pool::enqueue(std::__1::function<void ()>, std::__1::future<void>*)::$_2>, void ()>::operator()() + 24
    frame #11: 0x000000010042e90c cpptools-srv`msvc::thread_pool::do_work(unsigned long) + 764
    frame #12: 0x000000010042ffc1 cpptools-srv`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, msvc::thread_pool::add_threads()::$_1> >(void*) + 49
    frame #13: 0x00007fff6c4e1109 libsystem_pthread.dylib`_pthread_start + 148
    frame #14: 0x00007fff6c4dcb8b libsystem_pthread.dylib`thread_start + 15
  thread #3
    frame #0: 0x00000001001dce19 cpptools-srv`perform_scheduled_routine_moves() + 169
    frame #1: 0x00000001002d85a4 cpptools-srv`pop_scope_full(int) + 420
    frame #2: 0x00000001002dacb9 cpptools-srv`pop_template_instantiation_scope() + 121
    frame #3: 0x0000000100320f53 cpptools-srv`rescan_template_constant_parameter(a_symbol*, a_symbol*, a_template_param*, a_template_arg*, int, a_constant**) + 531
    frame #4: 0x0000000100266033 cpptools-srv`scan_template_argument_list(a_symbol*, int, int*, long long, long*) + 2403
    frame #5: 0x0000000100268042 cpptools-srv`coalesce_template_class_reference(a_symbol*, long long, int*) + 3762
    frame #6: 0x0000000100269705 cpptools-srv`coalesce_template_id(a_symbol*, a_token_kind, unsigned int, long long, int, int*) + 405
    frame #7: 0x0000000100251931 cpptools-srv`f_is_generalized_identifier_start(long long, a_type*) + 5937
    frame #8: 0x00000001000fe4db cpptools-srv`decl_specifiers(unsigned long, a_decl_parse_state*, a_decl_pos_block*) + 3899
    frame #9: 0x00000001000d09af cpptools-srv`type_name_full(a_decl_parse_state*) + 239
    frame #10: 0x00000001003129e2 cpptools-srv`find_template_class_full(a_symbol*, a_template_arg**, int, a_symbol*, int, int, int, int) + 3938
    frame #11: 0x0000000100311a6f cpptools-srv`find_template_class(a_symbol*, a_template_arg**, int, a_symbol*, int, int, int) + 15
    frame #12: 0x0000000100268550 cpptools-srv`coalesce_template_class_reference(a_symbol*, long long, int*) + 5056
    frame #13: 0x0000000100269705 cpptools-srv`coalesce_template_id(a_symbol*, a_token_kind, unsigned int, long long, int, int*) + 405
    frame #14: 0x0000000100251931 cpptools-srv`f_is_generalized_identifier_start(long long, a_type*) + 5937
    frame #15: 0x00000001000fe4db cpptools-srv`decl_specifiers(unsigned long, a_decl_parse_state*, a_decl_pos_block*) + 3899
    frame #16: 0x00000001000d09af cpptools-srv`type_name_full(a_decl_parse_state*) + 239
    frame #17: 0x00000001003129e2 cpptools-srv`find_template_class_full(a_symbol*, a_template_arg**, int, a_symbol*, int, int, int, int) + 3938
    frame #18: 0x0000000100311a6f cpptools-srv`find_template_class(a_symbol*, a_template_arg**, int, a_symbol*, int, int, int) + 15
    frame #19: 0x0000000100268550 cpptools-srv`coalesce_template_class_reference(a_symbol*, long long, int*) + 5056
    frame #20: 0x0000000100269705 cpptools-srv`coalesce_template_id(a_symbol*, a_token_kind, unsigned int, long long, int, int*) + 405
    frame #21: 0x0000000100251931 cpptools-srv`f_is_generalized_identifier_start(long long, a_type*) + 5937
    frame #22: 0x00000001000c0e51 cpptools-srv`is_type_start_full(int, int, int) + 849
    frame #23: 0x00000001000c1a56 cpptools-srv`is_decl_start(int) + 134
    frame #24: 0x0000000100105102 cpptools-srv`is_decl_not_expr(unsigned short) + 50
    frame #25: 0x000000010011b34f cpptools-srv`scan_expr_full(an_operand*, an_operand*, int, int) + 6207
    frame #26: 0x0000000100129740 cpptools-srv`scan_bool_constant_expression(a_constant*) + 80
    frame #27: 0x00000001000d4253 cpptools-srv`static_assert_declaration(int) + 99
    frame #28: 0x00000001000d73bb cpptools-srv`scan_nonmember_declaration(a_decl_parse_state*, a_source_range*) + 907
    frame #29: 0x00000001002e9ef3 cpptools-srv`decl_statement(int, int*) + 291
    frame #30: 0x00000001002e55ce cpptools-srv`statement(int, int) + 590
    frame #31: 0x00000001002e474a cpptools-srv`compound_statement_full(int, int, int, int, int, a_type**) + 874
    frame #32: 0x00000001001a38d6 cpptools-srv`scan_function_body(a_routine*, a_func_info_block*, unsigned long, a_macro_arg_fixup**, a_macro_arg_fixup**) + 4806
    frame #33: 0x000000010030ee27 cpptools-srv`function_prototype_instantiation(a_symbol*) + 935
    frame #34: 0x000000010032aedc cpptools-srv`template_declaration(a_tmpl_decl_state*) + 11580
    frame #35: 0x0000000100325df4 cpptools-srv`template_or_specialization_declaration_full(a_tmpl_decl_state*, int, a_decl_parse_state*) + 6868
    frame #36: 0x000000010032c1b3 cpptools-srv`template_or_specialization_declaration(a_token_kind*, int, a_source_position*, int, a_decl_parse_state*) + 851
    frame #37: 0x0000000100330eb6 cpptools-srv`template_directive_or_declaration(a_token_kind*, int, a_source_position*) + 838
    frame #38: 0x00000001000d764c cpptools-srv`scan_nonmember_declaration(a_decl_parse_state*, a_source_range*) + 1564
    frame #39: 0x00000001000dfd1e cpptools-srv`namespace_declaration(a_token_kind*, int, int, a_source_position*, a_symbol**) + 4446
    frame #40: 0x00000001000d7d45 cpptools-srv`scan_nonmember_declaration(a_decl_parse_state*, a_source_range*) + 3349
    frame #41: 0x00000001000dfd1e cpptools-srv`namespace_declaration(a_token_kind*, int, int, a_source_position*, a_symbol**) + 4446
    frame #42: 0x00000001000d7d45 cpptools-srv`scan_nonmember_declaration(a_decl_parse_state*, a_source_range*) + 3349
    frame #43: 0x00000001000dd927 cpptools-srv`declaration(int, int, int, int, a_param_id*, a_source_range*) + 311
    frame #44: 0x00000001000dea34 cpptools-srv`linkage_specification(a_decl_parse_state*) + 436
    frame #45: 0x00000001000d748c cpptools-srv`scan_nonmember_declaration(a_decl_parse_state*, a_source_range*) + 1116
    frame #46: 0x00000001000dd927 cpptools-srv`declaration(int, int, int, int, a_param_id*, a_source_range*) + 311
    frame #47: 0x00000001000dea34 cpptools-srv`linkage_specification(a_decl_parse_state*) + 436
    frame #48: 0x00000001000d748c cpptools-srv`scan_nonmember_declaration(a_decl_parse_state*, a_source_range*) + 1116
    frame #49: 0x00000001000ddb39 cpptools-srv`translation_unit() + 393
    frame #50: 0x000000010034f45a cpptools-srv`process_translation_unit(char const*, int, an_exported_template_file*) + 954
    frame #51: 0x00000001000481b9 cpptools-srv`cfe_main(int, char**) + 121
    frame #52: 0x0000000100377219 cpptools-srv`cfe_main_exception_handler(int, char**) + 9
    frame #53: 0x00000001000482a9 cpptools-srv`edg_main(int, char**) + 9
    frame #54: 0x000000010036b06b cpptools-srv`invoke_edge_compiler(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >&) + 9611
    frame #55: 0x0000000100368a1d cpptools-srv`edge_compiler_main(int, char const**) + 109
    frame #56: 0x00000001003bc352 cpptools-srv`preparse(int, char const**, a_scout_store*, edge::translation_unit*) + 242
    frame #57: 0x0000000100392ea8 cpptools-srv`a_compiler_thread::compiler_thread_routine(a_compiler_thread*) + 296
    frame #58: 0x00000001003b318c cpptools-srv`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (*)(a_compiler_thread*), a_compiler_thread*> >(void*) + 44
    frame #59: 0x00007fff6c4e1109 libsystem_pthread.dylib`_pthread_start + 148
    frame #60: 0x00007fff6c4dcb8b libsystem_pthread.dylib`thread_start + 15

@bobbrow
Copy link
Member

bobbrow commented Sep 18, 2020

@Colengms, I see perform_scheduled_routine_moves in the second callstack log. I remember adding code there to prevent infinite loops long ago. I wonder if something regressed?

Original issue #981

@sean-mcmanus
Copy link
Contributor

Does it repro with 1.0.0 or 0.29.0 too?

@sean-mcmanus
Copy link
Contributor

@bobbrow Yeah, those infinite loop fixes appear to be removed currently.

@sean-mcmanus sean-mcmanus self-assigned this Sep 21, 2020
@sean-mcmanus sean-mcmanus added this to the 1.0.1 milestone Sep 21, 2020
@Colengms
Copy link
Contributor Author

@sean-mcmanus It repro's with 1.0.0, but not with 0.29.0.

@sean-mcmanus
Copy link
Contributor

Okay, seems like this should get into 1.0.1 or a 1.0.2.

@sean-mcmanus
Copy link
Contributor

@Colengms Do you have a repro we could report to the VC team? The issue #981 got fixed in January, so the patch workaround was taken out, but it appears a new bug got recently introduced in 1.0.0 that might have a new root cause.

@sean-mcmanus sean-mcmanus mentioned this issue Sep 21, 2020
@sean-mcmanus
Copy link
Contributor

1.0.1 will change it from a hang to a "No IL"...we could morph this issue into tracking fixing "No IL" or create a new issue.

@sean-mcmanus sean-mcmanus changed the title Language Service becomes unresponsive (macOS) IntelliSense gives "No IL" (or crashes) in a certain scenario on macOS Sep 22, 2020
@sean-mcmanus
Copy link
Contributor

I'm getting a crash in the scenario...not sure yet if the crash is related to the "No IL" root cause or if it's causing by some difference in my repro (i.e. different system headers).

@bobbrow bobbrow modified the milestones: 1.0.1, 1.2.0 Oct 20, 2020
@bobbrow bobbrow assigned Colengms and unassigned sean-mcmanus Jan 12, 2021
@bobbrow bobbrow modified the milestones: 1.2.0, 1.3.0 Jan 26, 2021
@Colengms
Copy link
Contributor Author

I no longer have a repro for this. If I encounter it again, I'll open a new issue.

@Colengms Colengms removed this from the 1.3.0 milestone Feb 19, 2021
@github-actions github-actions bot locked and limited conversation to collaborators Apr 5, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

3 participants