Bug 393507

Summary: SIGSEGV parsing a .cpp file [crash in clang::Sema::ActOnExplicitInstantiation]
Product: [Applications] kdevelop Reporter: Yury Gubich <arhangel64>
Component: Language Support: CPP (Clang-based)Assignee: Yury Gubich <arhangel64>
Status: RESOLVED WORKSFORME    
Severity: crash    
Priority: NOR    
Version First Reported In: 5.2.1   
Target Milestone: ---   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:
Attachments: file, causes the error durig the parse
Backtrace
fuller backtrace

Description Yury Gubich 2018-04-25 14:57:01 UTC
Created attachment 112239 [details]
file, causes the error durig the parse

Kdevelop falls with sigsegv parsing my project. Last file he tried to parse was the attached one.

This is my first bug report - please< tell me if I need to provide smth else
Comment 1 Kevin Funk 2018-04-26 05:56:31 UTC
Heya Yuri,

unfortunately it's not possible to reproduce the crash using your file (it is not standalone, needs other includes, thus cannot be parsed properly here).

It would be best if you could supply a backtrace of your crash, please check out the following link to see how to create a crash report on Linux:
  https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports#Retrieving_a_backtrace_with_GDB
Comment 2 Yury Gubich 2018-04-26 07:26:45 UTC
Created attachment 112249 [details]
Backtrace

gdb backtrace of kdevelop

Please tell if it's not useful, i'll provide something else
Comment 3 Yury Gubich 2018-04-26 07:33:12 UTC
Created attachment 112250 [details]
fuller backtrace

Sorry, didn't see the cmd message below, here's the fuller one
Comment 4 Kevin Funk 2018-04-27 05:19:47 UTC
Adding backtrace inline for SEO:

Thread 15 "Queue(0x5555560" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fff77fff700 (LWP 4080)]
0x00007fff8b202847 in clang::Sema::ActOnExplicitInstantiation(clang::Scope*, clang::SourceLocation, clang::SourceLocation, unsigned int, clang::SourceLocation, clang::CXXScopeSpec&, clang::IdentifierInfo*, clang::SourceLocation, clang::AttributeList*) () from /usr/lib/../lib/libclangSema.so.6
(gdb) 
(gdb) thread apply all backtrace

Thread 16 (Thread 0x7fff76f49700 (LWP 4148)):
#0  0x00007ffff45bd97b in poll () at /usr/lib/libc.so.6
#1  0x00007fffeb18c523 in  () at /usr/lib/libglib-2.0.so.0
#2  0x00007fffeb18c63e in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#3  0x00007ffff4f09241 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#4  0x00007ffff4eab32b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#5  0x00007ffff4cba72e in QThread::exec() () at /usr/lib/libQt5Core.so.5
#6  0x00007fff7d92eb6a in  () at /usr/lib/qt/qml/QtQuick/XmlListModel/libqmlxmllistmodelplugin.so
#7  0x00007ffff4cbfacd in  () at /usr/lib/libQt5Core.so.5
#8  0x00007fffedd8a08c in start_thread () at /usr/lib/libpthread.so.0
#9  0x00007ffff45c7e7f in clone () at /usr/lib/libc.so.6

Thread 15 (Thread 0x7fff77fff700 (LWP 4080)):
#0  0x00007fff8b202847 in clang::Sema::ActOnExplicitInstantiation(clang::Scope*, clang::SourceLocation, clang::SourceLocation, unsigned int, clang::SourceLocation, clang::CXXScopeSpec&, clang::IdentifierInfo*, clang::SourceLocation, clang::AttributeList*) () at /usr/lib/../lib/libclangSema.so.6
#1  0x00007fff85948e8f in clang::Parser::ParseClassSpecifier(clang::tok::TokenKind, clang::SourceLocation, clang::DeclSpec&, clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier, bool, clang::Parser::DeclSpecContext, clang::Parser::ParsedAttributesWithRange&) () at /usr/lib/../lib/../lib/libclangParse.so.6
#2  0x00007fff8592253e in clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&, clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier, clang::Parser::DeclSpecContext, clang::Parser::LateParsedAttrList*) ()
    at /usr/lib/../lib/../lib/libclangParse.so.6
#3  0x00007fff859ab444 in clang::Parser::ParseSingleDeclarationAfterTemplate(clang::DeclaratorContext, clang::Parser::ParsedTemplateInfo const&, clang::ParsingDeclRAIIObject&, clang::SourceLocation&, clang::AccessSpecifier, clang::AttributeList*) () at /usr/lib/../lib/../lib/libclangParse.so.6
#4  0x00007fff859aca05 in clang::Parser::ParseExplicitInstantiation(clang::DeclaratorContext, clang::SourceLocation, clang::SourceLocation, clang::SourceLocation&, clang::AccessSpecifier) ()
    at /usr/lib/../lib/../lib/libclangParse.so.6
#5  0x00007fff859ad1c1 in clang::Parser::ParseDeclarationStartingWithTemplate(clang::DeclaratorContext, clang::SourceLocation&, clang::AccessSpecifier, clang::AttributeList*) () at /usr/lib/../lib/../lib/libclangParse.so.6
#6  0x00007fff8593188d in clang::Parser::ParseDeclaration(clang::DeclaratorContext, clang::SourceLocation&, clang::Parser::ParsedAttributesWithRange&) () at /usr/lib/../lib/../lib/libclangParse.so.6
#7  0x00007fff859bc5cb in clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec*) () at /usr/lib/../lib/../lib/libclangParse.so.6
#8  0x00007fff859bd52a in clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&) () at /usr/lib/../lib/../lib/libclangParse.so.6
#9  0x00007fff859100d3 in clang::ParseAST(clang::Sema&, bool, bool) () at /usr/lib/../lib/../lib/libclangParse.so.6
#10 0x00007fff9013bda6 in clang::FrontendAction::Execute() () at /usr/lib/../lib/libclangFrontend.so.6
#11 0x00007fff900e1a9f in clang::ASTUnit::Parse(std::shared_ptr<clang::PCHContainerOperations>, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >, llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem>) () at /usr/lib/../lib/libclangFrontend.so.6
#12 0x00007fff900e2079 in clang::ASTUnit::LoadFromCompilerInvocation(std::shared_ptr<clang::PCHContainerOperations>, unsigned int, llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem>) () at /usr/lib/../lib/libclangFrontend.so.6
#13 0x00007fff900e76bb in clang::ASTUnit::LoadFromCommandLine(char const**, char const**, std::shared_ptr<clang::PCHContainerOperations>, llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine>, llvm::StringRef, bool, bool, llvm::ArrayRef<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, llvm::MemoryBuffer*> >, bool, unsigned int, clang::TranslationUnitKind, bool, bool, bool, bool, bool, bool, bool, llvm::Optional<llvm::StringRef>, std::unique_ptr<clang::ASTUnit, std::default_delete<clang::ASTUnit> >*, llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem>) () at /usr/lib/../lib/libclangFrontend.so.6
#14 0x00007fff9096e915 in  () at /usr/lib/libclang.so.6
#15 0x00007fff9096f43c in  () at /usr/lib/libclang.so.6
#16 0x00007fff8696be23 in llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) () at /usr/lib/../lib/libLLVM-6.0.so
#17 0x00007fff8696bf15 in  () at /usr/lib/../lib/libLLVM-6.0.so
#18 0x00007fff869fcc5d in  () at /usr/lib/../lib/libLLVM-6.0.so
#19 0x00007fffedd8a08c in start_thread () at /usr/lib/libpthread.so.0
#20 0x00007ffff45c7e7f in clone () at /usr/lib/libc.so.6

Thread 13 (Thread 0x7fff7d0aa700 (LWP 4068)):
#0  0x00007fffedd8b45d in pthread_join () at /usr/lib/libpthread.so.0
#1  0x00007fff869fcd93 in llvm::llvm_execute_on_thread(void (*)(void*), void*, unsigned int) () at /usr/lib/../lib/libLLVM-6.0.so
#2  0x00007fff8696bf71 in llvm::CrashRecoveryContext::RunSafelyOnThread(llvm::function_ref<void ()>, unsigned int) () at /usr/lib/../lib/libLLVM-6.0.so
#3  0x00007fff9096bbd0 in clang_parseTranslationUnit2FullArgv () at /usr/lib/libclang.so.6
#4  0x00007fff9096c00f in clang_parseTranslationUnit2 () at /usr/lib/libclang.so.6
#5  0x00007fff90c72b17 in ParseSessionData::ParseSessionData(QVector<UnsavedFile> const&, ClangIndex*, ClangParsingEnvironment const&, QFlags<ParseSessionData::Option>) () at /usr/lib/libKDevClangPrivate.so.30
#6  0x00007fff90eb7447 in  () at /usr/lib/qt/plugins/kdevplatform/30/kdevclangsupport.so
#7  0x00007fff90ebaef5 in  () at /usr/lib/qt/plugins/kdevplatform/30/kdevclangsupport.so
#8  0x00007fffe97a18ab in ThreadWeaver::IdDecorator::run(QSharedPointer<ThreadWeaver::JobInterface>, ThreadWeaver::Thread*) () at /usr/lib/libKF5ThreadWeaver.so.5
#9  0x00007fffe97a1ea8 in ThreadWeaver::Executor::run(QSharedPointer<ThreadWeaver::JobInterface> const&, ThreadWeaver::Thread*) () at /usr/lib/libKF5ThreadWeaver.so.5
---Type <return> to continue, or q <return> to quit---
#10 0x00007fffe97a0af1 in ThreadWeaver::Job::execute(QSharedPointer<ThreadWeaver::JobInterface> const&, ThreadWeaver::Thread*) () at /usr/lib/libKF5ThreadWeaver.so.5
#11 0x00007fffe97a0645 in ThreadWeaver::Thread::run() () at /usr/lib/libKF5ThreadWeaver.so.5
#12 0x00007ffff4cbfacd in  () at /usr/lib/libQt5Core.so.5
#13 0x00007fffedd8a08c in start_thread () at /usr/lib/libpthread.so.0
#14 0x00007ffff45c7e7f in clone () at /usr/lib/libc.so.6

Thread 12 (Thread 0x7fffa2a8f700 (LWP 4067)):
#0  0x00007fffedd903bd in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
#1  0x00007ffff4cc0fac in QWaitCondition::wait(QMutex*, unsigned long) () at /usr/lib/libQt5Core.so.5
#2  0x00007fffe979e52f in ThreadWeaver::Weaver::takeFirstAvailableJobOrSuspendOrWait(ThreadWeaver::Thread*, bool, bool, bool) () at /usr/lib/libKF5ThreadWeaver.so.5
#3  0x00007fffe97a2719 in  () at /usr/lib/libKF5ThreadWeaver.so.5
#4  0x00007fffe979d6fd in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib/libKF5ThreadWeaver.so.5
#5  0x00007fffe97a0583 in ThreadWeaver::Thread::run() () at /usr/lib/libKF5ThreadWeaver.so.5
#6  0x00007ffff4cbfacd in  () at /usr/lib/libQt5Core.so.5
#7  0x00007fffedd8a08c in start_thread () at /usr/lib/libpthread.so.0
#8  0x00007ffff45c7e7f in clone () at /usr/lib/libc.so.6

Thread 11 (Thread 0x7fffa228e700 (LWP 4034)):
#0  0x00007ffff45bd97b in poll () at /usr/lib/libc.so.6
#1  0x00007fffeb18c523 in  () at /usr/lib/libglib-2.0.so.0
#2  0x00007fffeb18c63e in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#3  0x00007ffff4f09241 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#4  0x00007ffff4eab32b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#5  0x00007ffff4cba72e in QThread::exec() () at /usr/lib/libQt5Core.so.5
#6  0x00007ffff27e9749 in  () at /usr/lib/libKDevPlatformLanguage.so.52
#7  0x00007ffff4cbfacd in  () at /usr/lib/libQt5Core.so.5
#8  0x00007fffedd8a08c in start_thread () at /usr/lib/libpthread.so.0
#9  0x00007ffff45c7e7f in clone () at /usr/lib/libc.so.6

Thread 10 (Thread 0x7fff92bb9700 (LWP 4030)):
#0  0x00007ffff45bd97b in poll () at /usr/lib/libc.so.6
#1  0x00007fffeb18c523 in  () at /usr/lib/libglib-2.0.so.0
#2  0x00007fffeb18c63e in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#3  0x00007ffff4f09241 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#4  0x00007ffff4eab32b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#5  0x00007ffff4cba72e in QThread::exec() () at /usr/lib/libQt5Core.so.5
#6  0x00007fffed80b319 in  () at /usr/lib/libQt5Qml.so.5
#7  0x00007ffff4cbfacd in  () at /usr/lib/libQt5Core.so.5
#8  0x00007fffedd8a08c in start_thread () at /usr/lib/libpthread.so.0
#9  0x00007ffff45c7e7f in clone () at /usr/lib/libc.so.6

Thread 7 (Thread 0x7fffa3b42700 (LWP 4026)):
#0  0x00007ffff45bd97b in poll () at /usr/lib/libc.so.6
#1  0x00007fffeb18c523 in  () at /usr/lib/libglib-2.0.so.0
#2  0x00007fffeb18c63e in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#3  0x00007ffff4f09241 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#4  0x00007ffff4eab32b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#5  0x00007ffff4cba72e in QThread::exec() () at /usr/lib/libQt5Core.so.5
#6  0x00007ffff4cbfacd in  () at /usr/lib/libQt5Core.so.5
#7  0x00007fffedd8a08c in start_thread () at /usr/lib/libpthread.so.0
#8  0x00007ffff45c7e7f in clone () at /usr/lib/libc.so.6

Thread 6 (Thread 0x7fffaa778700 (LWP 4024)):
#0  0x00007ffff45bd97b in poll () at /usr/lib/libc.so.6
#1  0x00007fffeb18c523 in  () at /usr/lib/libglib-2.0.so.0
---Type <return> to continue, or q <return> to quit---
#2  0x00007fffeb18c63e in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#3  0x00007ffff4f09241 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#4  0x00007ffff4eab32b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#5  0x00007ffff4cba72e in QThread::exec() () at /usr/lib/libQt5Core.so.5
#6  0x00007ffff4cbfacd in  () at /usr/lib/libQt5Core.so.5
#7  0x00007fffedd8a08c in start_thread () at /usr/lib/libpthread.so.0
#8  0x00007ffff45c7e7f in clone () at /usr/lib/libc.so.6

Thread 5 (Thread 0x7fffad85a700 (LWP 4018)):
#0  0x00007fffedd903bd in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
#1  0x00007ffff493c5bd in __gthread_cond_wait (__mutex=<optimized out>, __cond=<optimized out>) at /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:864
#2  0x00007ffff493c5bd in std::condition_variable::wait(std::unique_lock<std::mutex>&) (this=<optimized out>, __lock=...) at /build/gcc/src/gcc/libstdc++-v3/src/c++11/condition_variable.cc:53
#3  0x00007fffb2dd7379 in  () at /usr/lib/libQt5WebKit.so.5
#4  0x00007fffb2dd74c9 in  () at /usr/lib/libQt5WebKit.so.5
#5  0x00007ffff4942b9f in std::execute_native_thread_routine(void*) (__p=0x55555614c1d0) at /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:83
#6  0x00007fffedd8a08c in start_thread () at /usr/lib/libpthread.so.0
#7  0x00007ffff45c7e7f in clone () at /usr/lib/libc.so.6

Thread 4 (Thread 0x7fffb8c46700 (LWP 4017)):
#0  0x00007ffff45bd97b in poll () at /usr/lib/libc.so.6
#1  0x00007fffeb18c523 in  () at /usr/lib/libglib-2.0.so.0
#2  0x00007fffeb18c63e in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#3  0x00007ffff4f09241 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#4  0x00007ffff4eab32b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#5  0x00007ffff4cba72e in QThread::exec() () at /usr/lib/libQt5Core.so.5
#6  0x00007ffff26dcaf1 in  () at /usr/lib/libKDevPlatformLanguage.so.52
#7  0x00007ffff4cbfacd in  () at /usr/lib/libQt5Core.so.5
#8  0x00007fffedd8a08c in start_thread () at /usr/lib/libpthread.so.0
#9  0x00007ffff45c7e7f in clone () at /usr/lib/libc.so.6

Thread 3 (Thread 0x7fffc0de5700 (LWP 4016)):
#0  0x00007ffff45bd97b in poll () at /usr/lib/libc.so.6
#1  0x00007fffeb18c523 in  () at /usr/lib/libglib-2.0.so.0
#2  0x00007fffeb18c63e in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#3  0x00007ffff4f09241 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#4  0x00007ffff4eab32b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#5  0x00007ffff4cba72e in QThread::exec() () at /usr/lib/libQt5Core.so.5
#6  0x00007ffff6c4f416 in  () at /usr/lib/libQt5DBus.so.5
#7  0x00007ffff4cbfacd in  () at /usr/lib/libQt5Core.so.5
#8  0x00007fffedd8a08c in start_thread () at /usr/lib/libpthread.so.0
#9  0x00007ffff45c7e7f in clone () at /usr/lib/libc.so.6

Thread 2 (Thread 0x7fffca29b700 (LWP 4015)):
#0  0x00007ffff45bd97b in poll () at /usr/lib/libc.so.6
#1  0x00007fffe0eea180 in  () at /usr/lib/libxcb.so.1
#2  0x00007fffe0eebe4b in xcb_wait_for_event () at /usr/lib/libxcb.so.1
#3  0x00007fffcc5ae82a in  () at /usr/lib/libQt5XcbQpa.so.5
#4  0x00007ffff4cbfacd in  () at /usr/lib/libQt5Core.so.5
#5  0x00007fffedd8a08c in start_thread () at /usr/lib/libpthread.so.0
#6  0x00007ffff45c7e7f in clone () at /usr/lib/libc.so.6

Thread 1 (Thread 0x7ffff7f51e80 (LWP 4011)):
#0  0x00007ffff45bd97b in poll () at /usr/lib/libc.so.6
#1  0x00007fffeb18c523 in  () at /usr/lib/libglib-2.0.so.0
#2  0x00007fffeb18c63e in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
---Type <return> to continue, or q <return> to quit---
#3  0x00007ffff4f09241 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#4  0x00007fffcc636482 in  () at /usr/lib/libQt5XcbQpa.so.5
#5  0x00007ffff4eab32b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#6  0x00007ffff4eb4728 in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5
#7  0x000055555555f9e4 in  ()
#8  0x00007ffff44f2f4a in __libc_start_main () at /usr/lib/libc.so.6
#9  0x000055555555ff9a in _start ()
Comment 5 Justin Zobel 2020-12-17 05:38:21 UTC
Thank you for the crash report.

As it has been a while since this was reported, can you please test and confirm if this issue is still occurring or if this bug report can be marked as resolved.

I have set the bug status to "needsinfo" pending your response, please change back to "reported" or "resolved/worksforme" when you respond, thank you.
Comment 6 Bug Janitor Service 2021-01-01 04:38:20 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least
15 days. Please provide the requested information as soon as
possible and set the bug status as REPORTED. Due to regular bug
tracker maintenance, if the bug is still in NEEDSINFO status with
no change in 30 days the bug will be closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

If you have already provided the requested information, please
mark the bug as REPORTED so that the KDE team knows that the bug is
ready to be confirmed.

Thank you for helping us make KDE software even better for everyone!
Comment 7 Bug Janitor Service 2021-01-16 04:37:10 UTC
This bug has been in NEEDSINFO status with no change for at least
30 days. The bug is now closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

Thank you for helping us make KDE software even better for everyone!