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 process crash in mark_entry #10507

Closed
sean-mcmanus opened this issue Feb 10, 2023 · 7 comments
Closed

IntelliSense process crash in mark_entry #10507

sean-mcmanus opened this issue Feb 10, 2023 · 7 comments
Assignees
Labels
bug Language Service more info needed The issue report is not actionable in its current state Visual Studio Inherited from Visual Studio

Comments

@sean-mcmanus
Copy link
Contributor

          > The fix is available with 1.14.0 (pre-release): https://github.com/microsoft/vscode-cpptools/releases/tag/v1.14.0

Hi @sean-mcmanus . It seems that those core dump files were not only caused by the field_for_lambda_capture crash, as I still found some cores after upgrading the plugin to version 1.14.0 in dir ".../.vscode-server/extensions/ms-vscode.cpptools-1.14.0-linux-x64/bin".

GDB backtrace again:

[fanglin@10-242-10-182 bin]$ gdb ./cpptools-srv core.9364
GNU gdb (GDB) 8.2.1
...
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Core was generated by `/data/fanglin/.vscode-server/extensions/ms-vscode.cpptools-1.14.0-linux-x64/bin'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00000000007ca339 in mark_entry(a_source_correspondence*, an_il_entry_kind, a_walk_parents_control_block*) ()
[Current thread is 1 (Thread 0x7f648d9fb700 (LWP 9400))]
(gdb) bt
#0  0x00000000007ca339 in mark_entry(a_source_correspondence*, an_il_entry_kind, a_walk_parents_control_block*) ()
#1  0x0000000000711e5d in walk_parents(a_source_correspondence*, an_il_entry_kind, void (*)(a_source_correspondence*, an_il_entry_kind, a_walk_parents_control_block*), a_walk_parents_control_block*, int) ()
#2  0x00000000007ca206 in set_signature_mark(a_source_correspondence*, an_il_entry_kind, int) ()
#3  0x00000000007c0711 in calculate_implicit_abi_tags(a_source_correspondence*, an_il_entry_kind) ()
#4  0x00000000007bfc29 in mangled_function_name(a_routine*, int, int, int, int, unsigned long*, a_mangling_control_block*) ()
#5  0x00000000007bf94c in get_mangled_function_name_full(a_routine*, int, int, int) ()
#6  0x0000000000469155 in edge::scope_entry::compute_functions() const ()
#7  0x0000000000469014 in edge::scope_entry::ensure_functions() const ()
#8  0x00000000004b1b2c in get_immediate_members_of_scope(edge::scope_entry*, edge::list<edge::symbol*>*, bool, bool, bool) ()
#9  0x00000000004b090d in get_scope_member_list(edge::scope_entry*, edge::list<edge::symbol*>*, edge::list<edge::symbol*>*, edge::list<edge::symbol*>*, edge::list<edge::symbol*>*, edge::list<edge::namespace_symbol*>*, bool, bool, bool, bool) ()
#10 0x00000000004b019c in edge::intellisense_operation::get_auto_complete_members(edge::member_selection_entry*&, edge::scope_entry*&, edge::list<edge::symbol*>*, edge::list<edge::symbol*>*, edge::list<edge::symbol*>*, edge::list<edge::symbol*>*, edge::intellisense_operation::member_list_kind, bool, bool&, bool&, bool&) ()
#11 0x00000000004b0c11 in edge::intellisense_operation::get_auto_complete_members(edge::member_selection_entry*&, edge::scope_entry*&, edge::list<edge::symbol*>*, edge::list<edge::symbol*>*, edge::list<edge::symbol*>*, edge::list<edge::symbol*>*, edge::intellisense_operation::member_list_kind) ()
#12 0x00000000004339b4 in std::_Function_handler<void (edge::intellisense_operation&, bool&), edge_intellisense_server_impl::handle_completion(cpp_intellisense::DocumentPosition const&, bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cpp_intellisense::CompletionResponse&)::{lambda(edge::intellisense_operation&, bool&)#2}>::_M_invoke(std::_Any_data const&, edge::intellisense_operation&, bool&) ()
#13 0x0000000000432b4d in void edge_intellisense_operation::perform_isense_operation<bool>(char const*, cpp_intellisense::DocumentPosition const&, std::function<void (edge::intellisense_operation&, bool&)>&&, bool&, snapshot::snapshot_session_t, bool, edge::allocator*) ()
#14 0x00000000004214de in edge_intellisense_server_impl::handle_completion(cpp_intellisense::DocumentPosition const&, bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cpp_intellisense::CompletionResponse&) ()
#15 0x000000000044a1a5 in cpp_intellisense::server_stub::handle_completion(msvc::deserializer_t&, msvc::serializer_t&) ()
#16 0x0000000000458230 in msvc::base_channel_t::dispatch_message(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) ()
#17 0x000000000097c6f3 in msvc::common_channel_t::perform_call(unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ()
#18 0x00000000009a9ed5 in worker ()
#19 0x00007f650920edd5 in start_thread () from /lib64/libpthread.so.0
#20 0x00007f6508f3802d in clone () from /lib64/libc.so.6
(gdb) 

Originally posted by @FangLin2001 in #10359 (comment)

@sean-mcmanus sean-mcmanus added bug Language Service more info needed The issue report is not actionable in its current state Visual Studio Inherited from Visual Studio labels Feb 10, 2023
@sean-mcmanus
Copy link
Contributor Author

@FangLin2001 Are you able to determine an isolated repro which causes this crash? Ideally without any includes. Or if it requires certain system headers we may need to make sure we're using the same ones.

@FangLin2001
Copy link

Actually due in part to the enormous size of my working directory/project, it's really hopeless to determine an isolated repro which causes this crash. Moreover, I cannot figure out the specific behaviors related to this crash at present. Since only a few crash files were found at version 1.14.0, I think the crash is not that common. Maybe we can lie it over until more info known, or shall you give some instructions?

@sean-mcmanus
Copy link
Contributor Author

@FangLin2001 Yeah, the first step would be to determine which file crashes when it's opened and if it repros consistently or only after edits, and then see if it's caused by some headers or the source file itself.

@FangLin2001
Copy link

FangLin2001 commented Feb 14, 2023

Unfortunately, I don't know how to repro this crash in my repository and what kind of codes would invoke mark_entry(). Actually there are only three core files generated by mark_entry() crash so far and I havn't encountered any perceivable error related to it when reading/editing C++ files. To be honest, there are some core files generated, and that's all I know. By the way, C/C++ extension was auto-upgraded after 1.14.1/1.14.2 pre-release was available, and I don't find any core in 1.14.1/1.14.2 folder.

@github-actions
Copy link

github-actions bot commented May 5, 2023

Hey @sean-mcmanus, this issue might need further attention.

@sean-mcmanus, you can help us out by closing this issue if the problem no longer exists, or adding more information.

@FangLin2001
Copy link

This specific problem doesnt occur recently.

@sean-mcmanus
Copy link
Contributor Author

Okay, it may have been fixed with an update.

@github-actions github-actions bot locked and limited conversation to collaborators Jun 23, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Language Service more info needed The issue report is not actionable in its current state Visual Studio Inherited from Visual Studio
Projects
None yet
Development

No branches or pull requests

2 participants