Bug 267042 - Deadlock in DUChainLock::lockForWrite
Summary: Deadlock in DUChainLock::lockForWrite
Status: CONFIRMED
Alias: None
Product: kdevelop
Classification: Applications
Component: Language Support: CPP (old) (show other bugs)
Version: 4.2.0
Platform: Ubuntu Linux
: NOR normal
Target Milestone: ---
Assignee: kdevelop-bugs-null
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-02-24 10:45 UTC by Chaos A.D.
Modified: 2018-12-16 02:57 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Chaos A.D. 2011-02-24 10:45:25 UTC
Version:           4.2.0 (using KDE 4.6.0) 
OS:                Linux

KDevelop hangs during parsing c++ with this stack:

Thread 11 (Thread 0xaeb56b70 (LWP 24760)):
#0  0xb7747424 in __kernel_vsyscall ()
#1  0xb52061a6 in nanosleep () at ../sysdeps/unix/syscall-template.S:82
#2  0xb5236e9c in usleep (useconds=500) at ../sysdeps/unix/sysv/linux/usleep.c:33
#3  0xb4c2e8bc in KDevelop::DUChainLock::lockForWrite(unsigned int) () from /usr/local/lib/libkdevplatformlanguage.so.4
#4  0xb4c2eb0e in KDevelop::DUChainWriteLocker::lock() () from /usr/local/lib/libkdevplatformlanguage.so.4
#5  0xb4c2eb6e in KDevelop::DUChainWriteLocker::DUChainWriteLocker(KDevelop::DUChainLock*, unsigned int) () from /usr/local/lib/libkdevplatformlanguage.so.4
#6  0xb4be7e63 in KDevelop::DUChainPrivate::doMoreCleanup(int, bool) () from /usr/local/lib/libkdevplatformlanguage.so.4
#7  0xb4be9267 in KDevelop::DUChainPrivate::CleanupThread::run() () from /usr/local/lib/libkdevplatformlanguage.so.4
#8  0xb5f7adf9 in QThreadPrivate::start (arg=0x903b568) at thread/qthread_unix.cpp:266
#9  0xb510dcc9 in start_thread (arg=0xaeb56b70) at pthread_create.c:304
#10 0xb523d69e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 10 (Thread 0xaca54b70 (LWP 24763)):
#0  0xb7747424 in __kernel_vsyscall ()
#1  0xb5236371 in select () at ../sysdeps/unix/syscall-template.S:82
#2  0xb6057bb8 in QProcessManager::run (this=0xb61b0888) at io/qprocess_unix.cpp:245
#3  0xb5f7adf9 in QThreadPrivate::start (arg=0xb61b0888) at thread/qthread_unix.cpp:266
#4  0xb510dcc9 in start_thread (arg=0xaca54b70) at pthread_create.c:304
#5  0xb523d69e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 9 (Thread 0xad255b70 (LWP 24769)):
#0  0xb7747424 in __kernel_vsyscall ()
#1  0xb522edf6 in __poll (fds=0xb52c5ff4, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#2  0xb4688a1b in g_poll () from /lib/libglib-2.0.so.0
#3  0xb467b43c in ?? () from /lib/libglib-2.0.so.0
#4  0xb467b848 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#5  0xb60ab565 in QEventDispatcherGlib::processEvents (this=0x923e2d8, flags=...) at kernel/qeventdispatcher_glib.cpp:415
#6  0xb607b609 in QEventLoop::processEvents (this=0xad255290, flags=) at kernel/qeventloop.cpp:149
$''$''$''DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece or DW_OP_bit_piece.
#7  0xb607ba8a in QEventLoop::exec (this=0xad255290, flags=...) at kernel/qeventloop.cpp:201
#8  0xb5f77b7e in QThread::exec (this=0x9241448) at thread/qthread.cpp:490
#9  0xb605a35b in QInotifyFileSystemWatcherEngine::run (this=0x9241448) at io/qfilesystemwatcher_inotify.cpp:248
#10 0xb5f7adf9 in QThreadPrivate::start (arg=0x9241448) at thread/qthread_unix.cpp:266
---Type <return> to continue, or q <return> to quit---
#11 0xb510dcc9 in start_thread (arg=0xad255b70) at pthread_create.c:304
#12 0xb523d69e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 8 (Thread 0xaaa9cb70 (LWP 24772)):
#0  0xb7747424 in __kernel_vsyscall ()
#1  0xb522edf6 in __poll (fds=0xb52c5ff4, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#2  0xb4688a1b in g_poll () from /lib/libglib-2.0.so.0
#3  0xb467b43c in ?? () from /lib/libglib-2.0.so.0
#4  0xb467b848 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#5  0xb60ab565 in QEventDispatcherGlib::processEvents (this=0x91204f0, flags=...) at kernel/qeventdispatcher_glib.cpp:415
#6  0xb607b609 in QEventLoop::processEvents (this=0xaaa9c2c0, flags=) at kernel/qeventloop.cpp:149
DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece or DW_OP_bit_piece.
#7  0xb607ba8a in QEventLoop::exec (this=0xaaa9c2c0, flags=...) at kernel/qeventloop.cpp:201
#8  0xb5f77b7e in QThread::exec (this=0x9276088) at thread/qthread.cpp:490
#9  0xb4cf4d98 in KDevelop::CompletionWorkerThread::run() () from /usr/local/lib/libkdevplatformlanguage.so.4
#10 0xb5f7adf9 in QThreadPrivate::start (arg=0x9276088) at thread/qthread_unix.cpp:266
#11 0xb510dcc9 in start_thread (arg=0xaaa9cb70) at pthread_create.c:304
#12 0xb523d69e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 7 (Thread 0xaa29bb70 (LWP 24773)):
#0  0xb7747424 in __kernel_vsyscall ()
#1  0xb522edf6 in __poll (fds=0xb52c5ff4, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#2  0xb4688a1b in g_poll () from /lib/libglib-2.0.so.0
#3  0xb467b43c in ?? () from /lib/libglib-2.0.so.0
#4  0xb467b848 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#5  0xb60ab565 in QEventDispatcherGlib::processEvents (this=0x927c308, flags=...) at kernel/qeventdispatcher_glib.cpp:415
#6  0xb607b609 in QEventLoop::processEvents (this=0xaa29b2c0, flags=) at kernel/qeventloop.cpp:149
DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece or DW_OP_bit_piece.
#7  0xb607ba8a in QEventLoop::exec (this=0xaa29b2c0, flags=...) at kernel/qeventloop.cpp:201
#8  0xb5f77b7e in QThread::exec (this=0xae2046b8) at thread/qthread.cpp:490
#9  0xb4cf4d98 in KDevelop::CompletionWorkerThread::run() () from /usr/local/lib/libkdevplatformlanguage.so.4
#10 0xb5f7adf9 in QThreadPrivate::start (arg=0xae2046b8) at thread/qthread_unix.cpp:266
#11 0xb510dcc9 in start_thread (arg=0xaa29bb70) at pthread_create.c:304
#12 0xb523d69e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 6 (Thread 0xa923fb70 (LWP 24778)):
---Type <return> to continue, or q <return> to quit---
#0  0xb7747424 in __kernel_vsyscall ()
#1  0xb51124dc in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:169
#2  0xb524ad9d in __pthread_cond_wait (cond=0xb50de290, mutex=0xb50de278) at forward.c:139
#3  0xb4fda877 in QTWTF::TCMalloc_PageHeap::scavengerThread (this=0xb50d91a0) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:2359
#4  0xb4fda8c1 in QTWTF::TCMalloc_PageHeap::runScavengerThread (context=0xb50d91a0) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:1464
#5  0xb510dcc9 in start_thread (arg=0xa923fb70) at pthread_create.c:304
#6  0xb523d69e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 5 (Thread 0xa823bb70 (LWP 24782)):
#0  0xb7747424 in __kernel_vsyscall ()
#1  0xb522edf6 in __poll (fds=0xb52c5ff4, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#2  0xb4688a1b in g_poll () from /lib/libglib-2.0.so.0
#3  0xb467b43c in ?? () from /lib/libglib-2.0.so.0
#4  0xb467b848 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#5  0xb60ab565 in QEventDispatcherGlib::processEvents (this=0x9eaf2a0, flags=...) at kernel/qeventdispatcher_glib.cpp:415
#6  0xb607b609 in QEventLoop::processEvents (this=0xa823b290, flags=) at kernel/qeventloop.cpp:149
DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece or DW_OP_bit_piece.
#7  0xb607ba8a in QEventLoop::exec (this=0xa823b290, flags=...) at kernel/qeventloop.cpp:201
#8  0xb5f77b7e in QThread::exec (this=0x9eadb90) at thread/qthread.cpp:490
#9  0xb605a35b in QInotifyFileSystemWatcherEngine::run (this=0x9eadb90) at io/qfilesystemwatcher_inotify.cpp:248
#10 0xb5f7adf9 in QThreadPrivate::start (arg=0x9eadb90) at thread/qthread_unix.cpp:266
#11 0xb510dcc9 in start_thread (arg=0xa823bb70) at pthread_create.c:304
#12 0xb523d69e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 4 (Thread 0xa797eb70 (LWP 24792)):
#0  0xb7747424 in __kernel_vsyscall ()
#1  0xb51124dc in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:169
#2  0xb524ad9d in __pthread_cond_wait (cond=0xb44f6770, mutex=0xb44f6758) at forward.c:139
#3  0xb3fee3a5 in ?? () from /usr/lib/libQtWebKit.so.4
#4  0xb3fee481 in ?? () from /usr/lib/libQtWebKit.so.4
#5  0xb510dcc9 in start_thread (arg=0xa797eb70) at pthread_create.c:304
#6  0xb523d69e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 3 (Thread 0xa68dcb70 (LWP 24793)):
#0  0xb7747424 in __kernel_vsyscall ()
---Type <return> to continue, or q <return> to quit---
#1  0xb52061a6 in nanosleep () at ../sysdeps/unix/syscall-template.S:82
#2  0xb5236e9c in usleep (useconds=500) at ../sysdeps/unix/sysv/linux/usleep.c:33
#3  0xb4c2e8bc in KDevelop::DUChainLock::lockForWrite(unsigned int) () from /usr/local/lib/libkdevplatformlanguage.so.4
#4  0xb4c2eb0e in KDevelop::DUChainWriteLocker::lock() () from /usr/local/lib/libkdevplatformlanguage.so.4
#5  0xb4c2eb6e in KDevelop::DUChainWriteLocker::DUChainWriteLocker(KDevelop::DUChainLock*, unsigned int) () from /usr/local/lib/libkdevplatformlanguage.so.4
#6  0xaab6dac5 in UseExpressionVisitor::usingDeclaration(AST*, unsigned int, unsigned int, KDevelop::DUChainPointer<KDevelop::Declaration> const&) () from /usr/local/lib/libkdev4cppduchain.so
#7  0xaabcc999 in NameASTVisitor::visitUnqualifiedName(UnqualifiedNameAST*) () from /usr/local/lib/libkdev4cppduchain.so
#8  0xaaaace73 in Visitor::visit(AST*) () from /usr/local/lib/libkdev4cppparser.so
#9  0xaaaab6d0 in DefaultVisitor::visitName(NameAST*) () from /usr/local/lib/libkdev4cppparser.so
#10 0xaaaace73 in Visitor::visit(AST*) () from /usr/local/lib/libkdev4cppparser.so
#11 0xaabcaddf in NameASTVisitor::run(NameAST*, bool) () from /usr/local/lib/libkdev4cppduchain.so
#12 0xaabce60c in TypeASTVisitor::visitName(NameAST*) () from /usr/local/lib/libkdev4cppduchain.so
#13 0xaaaace73 in Visitor::visit(AST*) () from /usr/local/lib/libkdev4cppparser.so
#14 0xaabcee12 in TypeASTVisitor::visitSimpleTypeSpecifier(SimpleTypeSpecifierAST*) () from /usr/local/lib/libkdev4cppduchain.so
#15 0xaaaace73 in Visitor::visit(AST*) () from /usr/local/lib/libkdev4cppparser.so
#16 0xaaaaaf3b in DefaultVisitor::visitPtrToMember(PtrToMemberAST*) () from /usr/local/lib/libkdev4cppparser.so
#17 0xaaaace73 in Visitor::visit(AST*) () from /usr/local/lib/libkdev4cppparser.so
#18 0xaabcdf76 in TypeASTVisitor::run(TypeIdAST*) () from /usr/local/lib/libkdev4cppduchain.so
#19 0xaabcb9ac in NameASTVisitor::processTemplateArgument(TemplateArgumentAST*) () from /usr/local/lib/libkdev4cppduchain.so
#20 0xaabcc1d6 in NameASTVisitor::visitTemplateArgument(TemplateArgumentAST*) () from /usr/local/lib/libkdev4cppduchain.so
#21 0xaaaace73 in Visitor::visit(AST*) () from /usr/local/lib/libkdev4cppparser.so
#22 0xaabcd7d9 in void visitNodes<TemplateArgumentAST*>(Visitor*, ListNode<TemplateArgumentAST*> const*) () from /usr/local/lib/libkdev4cppduchain.so
#23 0xaabcc3be in NameASTVisitor::visitUnqualifiedName(UnqualifiedNameAST*) () from /usr/local/lib/libkdev4cppduchain.so
#24 0xaaaace73 in Visitor::visit(AST*) () from /usr/local/lib/libkdev4cppparser.so
#25 0xaaaabcb9 in void visitNodes<UnqualifiedNameAST*>(Visitor*, ListNode<UnqualifiedNameAST*> const*) () from /usr/local/lib/libkdev4cppparser.so
#26 0xaaaab6c1 in DefaultVisitor::visitName(NameAST*) () from /usr/local/lib/libkdev4cppparser.so
#27 0xaaaace73 in Visitor::visit(AST*) () from /usr/local/lib/libkdev4cppparser.so
#28 0xaabcaddf in NameASTVisitor::run(NameAST*, bool) () from /usr/local/lib/libkdev4cppduchain.so
#29 0xaabce60c in TypeASTVisitor::visitName(NameAST*) () from /usr/local/lib/libkdev4cppduchain.so
#30 0xaaaace73 in Visitor::visit(AST*) () from /usr/local/lib/libkdev4cppparser.so
#31 0xaabcee12 in TypeASTVisitor::visitSimpleTypeSpecifier(SimpleTypeSpecifierAST*) () from /usr/local/lib/libkdev4cppduchain.so
#32 0xaaaace73 in Visitor::visit(AST*) () from /usr/local/lib/libkdev4cppparser.so
#33 0xaabcdd12 in TypeASTVisitor::run(TypeSpecifierAST*) () from /usr/local/lib/libkdev4cppduchain.so
#34 0xaabcddc9 in TypeASTVisitor::run(TypeIdAST*) () from /usr/local/lib/libkdev4cppduchain.so
---Type <return> to continue, or q <return> to quit---
#35 0xaabcb9ac in NameASTVisitor::processTemplateArgument(TemplateArgumentAST*) () from /usr/local/lib/libkdev4cppduchain.so
#36 0xaabcc1d6 in NameASTVisitor::visitTemplateArgument(TemplateArgumentAST*) () from /usr/local/lib/libkdev4cppduchain.so
#37 0xaaaace73 in Visitor::visit(AST*) () from /usr/local/lib/libkdev4cppparser.so
#38 0xaabcd7d9 in void visitNodes<TemplateArgumentAST*>(Visitor*, ListNode<TemplateArgumentAST*> const*) () from /usr/local/lib/libkdev4cppduchain.so
#39 0xaabcc3be in NameASTVisitor::visitUnqualifiedName(UnqualifiedNameAST*) () from /usr/local/lib/libkdev4cppduchain.so
#40 0xaaaace73 in Visitor::visit(AST*) () from /usr/local/lib/libkdev4cppparser.so
#41 0xaaaab6d0 in DefaultVisitor::visitName(NameAST*) () from /usr/local/lib/libkdev4cppparser.so
#42 0xaaaace73 in Visitor::visit(AST*) () from /usr/local/lib/libkdev4cppparser.so
#43 0xaabcaddf in NameASTVisitor::run(NameAST*, bool) () from /usr/local/lib/libkdev4cppduchain.so
#44 0xaabce60c in TypeASTVisitor::visitName(NameAST*) () from /usr/local/lib/libkdev4cppduchain.so
#45 0xaaaace73 in Visitor::visit(AST*) () from /usr/local/lib/libkdev4cppparser.so
#46 0xaabcee12 in TypeASTVisitor::visitSimpleTypeSpecifier(SimpleTypeSpecifierAST*) () from /usr/local/lib/libkdev4cppduchain.so
#47 0xaaaace73 in Visitor::visit(AST*) () from /usr/local/lib/libkdev4cppparser.so
#48 0xaabcdd12 in TypeASTVisitor::run(TypeSpecifierAST*) () from /usr/local/lib/libkdev4cppduchain.so
#49 0xaabad287 in Cpp::ExpressionVisitor::visitSimpleTypeSpecifier(SimpleTypeSpecifierAST*) () from /usr/local/lib/libkdev4cppduchain.so
#50 0xaaaace73 in Visitor::visit(AST*) () from /usr/local/lib/libkdev4cppparser.so
#51 0xaababe9b in Cpp::ExpressionVisitor::parse(AST*) () from /usr/local/lib/libkdev4cppduchain.so
#52 0xaab6ac6d in UseBuilder::visitSimpleTypeSpecifier(SimpleTypeSpecifierAST*) () from /usr/local/lib/libkdev4cppduchain.so
#53 0xaaaace73 in Visitor::visit(AST*) () from /usr/local/lib/libkdev4cppparser.so
#54 0xaab24608 in ContextBuilder::visitFunctionDeclaration(FunctionDefinitionAST*) () from /usr/local/lib/libkdev4cppduchain.so
#55 0xaab28394 in ContextBuilder::visitFunctionDefinition(FunctionDefinitionAST*) () from /usr/local/lib/libkdev4cppduchain.so
#56 0xaaaace73 in Visitor::visit(AST*) () from /usr/local/lib/libkdev4cppparser.so
#57 0xaab277d2 in ContextBuilder::visitTemplateDeclaration(TemplateDeclarationAST*) () from /usr/local/lib/libkdev4cppduchain.so
#58 0xaaaace73 in Visitor::visit(AST*) () from /usr/local/lib/libkdev4cppparser.so
#59 0xaaaab9b9 in void visitNodes<DeclarationAST*>(Visitor*, ListNode<DeclarationAST*> const*) () from /usr/local/lib/libkdev4cppparser.so
#60 0xaaaace73 in Visitor::visit(AST*) () from /usr/local/lib/libkdev4cppparser.so
#61 0xaaaaad4b in DefaultVisitor::visitNamespace(NamespaceAST*) () from /usr/local/lib/libkdev4cppparser.so
#62 0xaab25029 in ContextBuilder::visitNamespace(NamespaceAST*) () from /usr/local/lib/libkdev4cppduchain.so
#63 0xaaaace73 in Visitor::visit(AST*) () from /usr/local/lib/libkdev4cppparser.so
#64 0xaaaab9b9 in void visitNodes<DeclarationAST*>(Visitor*, ListNode<DeclarationAST*> const*) () from /usr/local/lib/libkdev4cppparser.so
#65 0xaaaace73 in Visitor::visit(AST*) () from /usr/local/lib/libkdev4cppparser.so
#66 0xaab245ac in ContextBuilder::startVisiting(AST*) () from /usr/local/lib/libkdev4cppduchain.so
#67 0xaab6a915 in UseBuilder::buildUses(AST*) () from /usr/local/lib/libkdev4cppduchain.so
#68 0xaac3ac45 in CPPInternalParseJob::run() () from /usr/local/lib/kde4/kdevcpplanguagesupport.so
---Type <return> to continue, or q <return> to quit---
#69 0xb7031df4 in ?? () from /usr/lib/libthreadweaver.so.4
#70 0xb7032151 in ThreadWeaver::Job::execute(ThreadWeaver::Thread*) () from /usr/lib/libthreadweaver.so.4
#71 0xb7033b23 in ?? () from /usr/lib/libthreadweaver.so.4
#72 0xb7030e1a in ?? () from /usr/lib/libthreadweaver.so.4
#73 0xb703156b in ThreadWeaver::Thread::run() () from /usr/lib/libthreadweaver.so.4
#74 0xb5f7adf9 in QThreadPrivate::start (arg=0x9e522d0) at thread/qthread_unix.cpp:266
#75 0xb510dcc9 in start_thread (arg=0xa68dcb70) at pthread_create.c:304
#76 0xb523d69e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 2 (Thread 0xa60dbb70 (LWP 24794)):
#0  0xb7747424 in __kernel_vsyscall ()
#1  0xb52061a6 in nanosleep () at ../sysdeps/unix/syscall-template.S:82
#2  0xb5236e9c in usleep (useconds=500) at ../sysdeps/unix/sysv/linux/usleep.c:33
#3  0xb4c2e8bc in KDevelop::DUChainLock::lockForWrite(unsigned int) () from /usr/local/lib/libkdevplatformlanguage.so.4
#4  0xb4c2eb0e in KDevelop::DUChainWriteLocker::lock() () from /usr/local/lib/libkdevplatformlanguage.so.4
#5  0xb4c2eb6e in KDevelop::DUChainWriteLocker::DUChainWriteLocker(KDevelop::DUChainLock*, unsigned int) () from /usr/local/lib/libkdevplatformlanguage.so.4
#6  0xaac41000 in PreprocessJob::run() () from /usr/local/lib/kde4/kdevcpplanguagesupport.so
#7  0xaac35a52 in CPPParseJob::parseForeground() () from /usr/local/lib/kde4/kdevcpplanguagesupport.so
#8  0xaac3e8f3 in PreprocessJob::sourceNeeded(QString&, rpp::Preprocessor::IncludeType, int, bool) () from /usr/local/lib/kde4/kdevcpplanguagesupport.so
#9  0xaac01383 in rpp::pp::handle_include(bool, rpp::Stream&, rpp::Stream&) () from /usr/local/lib/libkdev4cpprpp.so
#10 0xaac03f63 in rpp::pp::handle_directive(unsigned int, rpp::Stream&, rpp::Stream&) () from /usr/local/lib/libkdev4cpprpp.so
#11 0xaac0477b in rpp::pp::operator()(rpp::Stream&, rpp::Stream&) () from /usr/local/lib/libkdev4cpprpp.so
#12 0xaac049d7 in rpp::pp::processFileInternal(QString const&, QByteArray const&, QVector<unsigned int>&) () from /usr/local/lib/libkdev4cpprpp.so
#13 0xaac04a75 in rpp::pp::processFile(QString const&, QByteArray const&) () from /usr/local/lib/libkdev4cpprpp.so
#14 0xaac414e2 in PreprocessJob::run() () from /usr/local/lib/kde4/kdevcpplanguagesupport.so
#15 0xaac35a52 in CPPParseJob::parseForeground() () from /usr/local/lib/kde4/kdevcpplanguagesupport.so
#16 0xaac3e8f3 in PreprocessJob::sourceNeeded(QString&, rpp::Preprocessor::IncludeType, int, bool) () from /usr/local/lib/kde4/kdevcpplanguagesupport.so
#17 0xaac01383 in rpp::pp::handle_include(bool, rpp::Stream&, rpp::Stream&) () from /usr/local/lib/libkdev4cpprpp.so
#18 0xaac03f63 in rpp::pp::handle_directive(unsigned int, rpp::Stream&, rpp::Stream&) () from /usr/local/lib/libkdev4cpprpp.so
#19 0xaac0477b in rpp::pp::operator()(rpp::Stream&, rpp::Stream&) () from /usr/local/lib/libkdev4cpprpp.so
#20 0xaac049d7 in rpp::pp::processFileInternal(QString const&, QByteArray const&, QVector<unsigned int>&) () from /usr/local/lib/libkdev4cpprpp.so
#21 0xaac04a75 in rpp::pp::processFile(QString const&, QByteArray const&) () from /usr/local/lib/libkdev4cpprpp.so
#22 0xaac40cd8 in PreprocessJob::run() () from /usr/local/lib/kde4/kdevcpplanguagesupport.so
#23 0xaac35a52 in CPPParseJob::parseForeground() () from /usr/local/lib/kde4/kdevcpplanguagesupport.so
---Type <return> to continue, or q <return> to quit---
#24 0xaac3e8f3 in PreprocessJob::sourceNeeded(QString&, rpp::Preprocessor::IncludeType, int, bool) () from /usr/local/lib/kde4/kdevcpplanguagesupport.so
#25 0xaac01383 in rpp::pp::handle_include(bool, rpp::Stream&, rpp::Stream&) () from /usr/local/lib/libkdev4cpprpp.so
#26 0xaac03f63 in rpp::pp::handle_directive(unsigned int, rpp::Stream&, rpp::Stream&) () from /usr/local/lib/libkdev4cpprpp.so
#27 0xaac0477b in rpp::pp::operator()(rpp::Stream&, rpp::Stream&) () from /usr/local/lib/libkdev4cpprpp.so
#28 0xaac049d7 in rpp::pp::processFileInternal(QString const&, QByteArray const&, QVector<unsigned int>&) () from /usr/local/lib/libkdev4cpprpp.so
#29 0xaac04a75 in rpp::pp::processFile(QString const&, QByteArray const&) () from /usr/local/lib/libkdev4cpprpp.so
#30 0xaac40cd8 in PreprocessJob::run() () from /usr/local/lib/kde4/kdevcpplanguagesupport.so
#31 0xaac35a52 in CPPParseJob::parseForeground() () from /usr/local/lib/kde4/kdevcpplanguagesupport.so
#32 0xaac3e8f3 in PreprocessJob::sourceNeeded(QString&, rpp::Preprocessor::IncludeType, int, bool) () from /usr/local/lib/kde4/kdevcpplanguagesupport.so
#33 0xaac01383 in rpp::pp::handle_include(bool, rpp::Stream&, rpp::Stream&) () from /usr/local/lib/libkdev4cpprpp.so
#34 0xaac03f63 in rpp::pp::handle_directive(unsigned int, rpp::Stream&, rpp::Stream&) () from /usr/local/lib/libkdev4cpprpp.so
#35 0xaac0477b in rpp::pp::operator()(rpp::Stream&, rpp::Stream&) () from /usr/local/lib/libkdev4cpprpp.so
#36 0xaac049d7 in rpp::pp::processFileInternal(QString const&, QByteArray const&, QVector<unsigned int>&) () from /usr/local/lib/libkdev4cpprpp.so
#37 0xaac04a75 in rpp::pp::processFile(QString const&, QByteArray const&) () from /usr/local/lib/libkdev4cpprpp.so
#38 0xaac40cd8 in PreprocessJob::run() () from /usr/local/lib/kde4/kdevcpplanguagesupport.so
#39 0xb7031df4 in ?? () from /usr/lib/libthreadweaver.so.4
#40 0xb7032151 in ThreadWeaver::Job::execute(ThreadWeaver::Thread*) () from /usr/lib/libthreadweaver.so.4
#41 0xb7033b23 in ?? () from /usr/lib/libthreadweaver.so.4
#42 0xb703453e in ThreadWeaver::JobCollection::execute(ThreadWeaver::Thread*) () from /usr/lib/libthreadweaver.so.4
#43 0xb7030e1a in ?? () from /usr/lib/libthreadweaver.so.4
#44 0xb703156b in ThreadWeaver::Thread::run() () from /usr/lib/libthreadweaver.so.4
#45 0xb5f7adf9 in QThreadPrivate::start (arg=0x9e4db78) at thread/qthread_unix.cpp:266
#46 0xb510dcc9 in start_thread (arg=0xa60dbb70) at pthread_create.c:304
#47 0xb523d69e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 1 (Thread 0xb2ca1710 (LWP 24759)):
#0  0xb7747424 in __kernel_vsyscall ()
#1  0xb52061a6 in nanosleep () at ../sysdeps/unix/syscall-template.S:82
#2  0xb5236e9c in usleep (useconds=500) at ../sysdeps/unix/sysv/linux/usleep.c:33
#3  0xb4c2e8bc in KDevelop::DUChainLock::lockForWrite(unsigned int) () from /usr/local/lib/libkdevplatformlanguage.so.4
#4  0xb4c2eb0e in KDevelop::DUChainWriteLocker::lock() () from /usr/local/lib/libkdevplatformlanguage.so.4
#5  0xb4c2eb6e in KDevelop::DUChainWriteLocker::DUChainWriteLocker(KDevelop::DUChainLock*, unsigned int) () from /usr/local/lib/libkdevplatformlanguage.so.4
#6  0xb4bd448c in KDevelop::DUChain::documentLoadedPrepare(KDevelop::IDocument*) () from /usr/local/lib/libkdevplatformlanguage.so.4
#7  0xb4bd5aa7 in KDevelop::DUChain::qt_metacall(QMetaObject::Call, int, void**) () from /usr/local/lib/libkdevplatformlanguage.so.4
---Type <return> to continue, or q <return> to quit---
#8  0xb60828ca in QMetaObject::metacall (object=0x9020640, cl=QMetaObject::InvokeMetaMethod, idx=4, argv=0x0) at kernel/qmetaobject.cpp:237
#9  0xb60956ad in QMetaObject::activate (sender=0x8eb1de8, m=0xb7485574, local_signal_index=9, argv=0xfffffdfc) at kernel/qobject.cpp:3280
#10 0xb747b8a3 in KDevelop::IDocumentController::documentLoadedPrepare(KDevelop::IDocument*) () from /usr/local/lib/libkdevplatforminterfaces.so.4
#11 0xb7479102 in KDevelop::IDocument::notifyLoaded() () from /usr/local/lib/libkdevplatforminterfaces.so.4
#12 0xb740012e in KDevelop::TextDocument::qt_metacall(QMetaObject::Call, int, void**) () from /usr/local/lib/libkdevplatformshell.so.4
#13 0xb60828ca in QMetaObject::metacall (object=0xc49a470, cl=QMetaObject::InvokeMetaMethod, idx=6, argv=0x0) at kernel/qmetaobject.cpp:237
#14 0xb60956ad in QMetaObject::activate (sender=0xc4749e0, m=0xb706ed84, local_signal_index=5, argv=0xfffffdfc) at kernel/qobject.cpp:3280
#15 0xb7056143 in KTextEditor::Document::textChanged(KTextEditor::Document*) () from /usr/lib/libktexteditor.so.4
#16 0xb0268909 in KateDocument::editEnd() () from /usr/lib/libkatepartinterfaces.so.4
#17 0xb026be30 in KateDocument::editRemoveText(int, int, int) () from /usr/lib/libkatepartinterfaces.so.4
#18 0xb026c00a in KateDocument::removeTrailingSpace(int) () from /usr/lib/libkatepartinterfaces.so.4
#19 0xb027bd2f in KateDocument::openFile() () from /usr/lib/libkatepartinterfaces.so.4
#20 0xb70a0364 in ?? () from /usr/lib/libkparts.so.4
#21 0xb70a0d9a in KParts::ReadOnlyPart::openUrl(KUrl const&) () from /usr/lib/libkparts.so.4
#22 0xb73ffce6 in KDevelop::TextDocument::createViewWidget(QWidget*) () from /usr/local/lib/libkdevplatformshell.so.4
#23 0xb73ff43e in KDevelop::TextView::createWidget(QWidget*) () from /usr/local/lib/libkdevplatformshell.so.4
#24 0xb69fe007 in Sublime::View::widget(QWidget*) () from /usr/local/lib/libsublime.so.4
#25 0xb69fb27f in Sublime::MainWindowPrivate::ViewCreator::operator()(Sublime::AreaIndex*) () from /usr/local/lib/libsublime.so.4
#26 0xb69fd679 in Sublime::Area::WalkerMode Sublime::Area::walkViewsInternal<Sublime::MainWindowPrivate::ViewCreator>(Sublime::MainWindowPrivate::ViewCreator&, Sublime::AreaIndex*) ()
   from /usr/local/lib/libsublime.so.4
#27 0xb69fd6cb in void Sublime::Area::walkViews<Sublime::MainWindowPrivate::ViewCreator>(Sublime::MainWindowPrivate::ViewCreator&, Sublime::AreaIndex*) () from /usr/local/lib/libsublime.so.4
#28 0xb69fbb0a in Sublime::MainWindowPrivate::viewAdded(Sublime::AreaIndex*, Sublime::View*) () from /usr/local/lib/libsublime.so.4
#29 0xb69f407b in Sublime::MainWindow::qt_metacall(QMetaObject::Call, int, void**) () from /usr/local/lib/libsublime.so.4
#30 0xb73d613a in KDevelop::MainWindow::qt_metacall(QMetaObject::Call, int, void**) () from /usr/local/lib/libkdevplatformshell.so.4
#31 0xb60828ca in QMetaObject::metacall (object=0x8d74120, cl=QMetaObject::InvokeMetaMethod, idx=0, argv=0xbfefe254) at kernel/qmetaobject.cpp:237
#32 0xb60956ad in QMetaObject::activate (sender=0x8d81a80, m=0xb6a113a0, local_signal_index=0, argv=0xfffffdfc) at kernel/qobject.cpp:3280
#33 0xb69e60b9 in Sublime::Area::viewAdded(Sublime::AreaIndex*, Sublime::View*) () from /usr/local/lib/libsublime.so.4
#34 0xb69e6222 in Sublime::Area::addView(Sublime::View*, Sublime::AreaIndex*) () from /usr/local/lib/libsublime.so.4
#35 0xb69e6cce in Sublime::Area::addView(Sublime::View*, Sublime::View*) () from /usr/local/lib/libsublime.so.4
#36 0xb7406b63 in KDevelop::DocumentControllerPrivate::openDocumentInternal(KDevelop::IDocument*, KTextEditor::Range const&, QFlags<KDevelop::IDocumentController::DocumentActivation>) ()
   from /usr/local/lib/libkdevplatformshell.so.4
#37 0xb74079cd in KDevelop::DocumentControllerPrivate::openDocumentInternal(KUrl const&, QString const&, KTextEditor::Range const&, QString const&, QFlags<KDevelop::IDocumentController::DocumentActivation>) () from /usr/local/lib/libkdevplatformshell.so.4
#38 0xb7403894 in KDevelop::DocumentController::openDocument(KUrl const&, KTextEditor::Range const&, QFlags<KDevelop::IDocumentController::DocumentActivation>, QString const&) ()
---Type <return> to continue, or q <return> to quit---
   from /usr/local/lib/libkdevplatformshell.so.4
#39 0xb747b539 in KDevelop::IDocumentController::openDocument(KUrl const&, KTextEditor::Cursor const&, QFlags<KDevelop::IDocumentController::DocumentActivation>, QString const&) ()
   from /usr/local/lib/libkdevplatforminterfaces.so.4
#40 0xb74398f3 in KDevelop::DebugController::showStepInSource(KUrl const&, int) () from /usr/local/lib/libkdevplatformshell.so.4
#41 0xb73c1e56 in KDevelop::DebugController::qt_metacall(QMetaObject::Call, int, void**) () from /usr/local/lib/libkdevplatformshell.so.4
#42 0xb60828ca in QMetaObject::metacall (object=0x8f81ff0, cl=QMetaObject::InvokeMetaMethod, idx=0, argv=0x8f81ff0) at kernel/qmetaobject.cpp:237
#43 0xb60956ad in QMetaObject::activate (sender=0xa26a250, m=0xb69cc6e0, local_signal_index=1, argv=0xfffffdfc) at kernel/qobject.cpp:3280
#44 0xb69aa3cf in KDevelop::IDebugSession::showStepInSource(KUrl const&, int, QString const&) () from /usr/local/lib/libkdevplatformdebugger.so.4
#45 0xb69aa54d in KDevelop::IDebugSession::setCurrentPosition(KUrl const&, int, QString const&) () from /usr/local/lib/libkdevplatformdebugger.so.4
#46 0xada7ba1c in GDBDebugger::DebugSession::slotProgramStopped(GDBMI::ResultRecord const&) () from /usr/local/lib/kde4/kdevgdb.so
#47 0xada7f74e in GDBDebugger::DebugSession::qt_metacall(QMetaObject::Call, int, void**) () from /usr/local/lib/kde4/kdevgdb.so
#48 0xb60828ca in QMetaObject::metacall (object=0xa26a250, cl=QMetaObject::InvokeMetaMethod, idx=57, argv=0xbfefeb08) at kernel/qmetaobject.cpp:237
#49 0xb60956ad in QMetaObject::activate (sender=0xbf4d960, m=0xadaa696c, local_signal_index=2, argv=0xfffffdfc) at kernel/qobject.cpp:3280
#50 0xada4f493 in GDBDebugger::GDB::programStopped(GDBMI::ResultRecord const&) () from /usr/local/lib/kde4/kdevgdb.so
#51 0xada50de4 in GDBDebugger::GDB::processLine(QByteArray const&) () from /usr/local/lib/kde4/kdevgdb.so
#52 0xada51a09 in GDBDebugger::GDB::readyReadStandardOutput() () from /usr/local/lib/kde4/kdevgdb.so
#53 0xada4f903 in GDBDebugger::GDB::qt_metacall(QMetaObject::Call, int, void**) () from /usr/local/lib/kde4/kdevgdb.so
#54 0xb60828ca in QMetaObject::metacall (object=0xbf4d960, cl=QMetaObject::InvokeMetaMethod, idx=15, argv=0xbfefedac) at kernel/qmetaobject.cpp:237
#55 0xb60956ad in QMetaObject::activate (sender=0xbc64600, m=0xb61ad6e8, local_signal_index=5, argv=0xfffffdfc) at kernel/qobject.cpp:3280
#56 0xb60105e7 in QProcess::readyReadStandardOutput (this=0xbc64600) at .moc/release-shared/moc_qprocess.cpp:162
#57 0xb60158cf in QProcessPrivate::_q_canReadStandardOutput (this=0xbf4df18) at io/qprocess.cpp:897
#58 0xb6016266 in QProcess::qt_metacall (this=0xbc64600, _c=QMetaObject::InvokeMetaMethod, _id=9, _a=0xbfefefa8) at .moc/release-shared/moc_qprocess.cpp:107
#59 0xb75892ea in KProcess::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libkdecore.so.5
#60 0xb60828ca in QMetaObject::metacall (object=0xbc64600, cl=QMetaObject::InvokeMetaMethod, idx=0, argv=0xbc64600) at kernel/qmetaobject.cpp:237
#61 0xb60956ad in QMetaObject::activate (sender=0xb9de1f8, m=0xb61af550, local_signal_index=0, argv=0xfffffdfc) at kernel/qobject.cpp:3280
#62 0xb60e7073 in QSocketNotifier::activated (this=0xb9de1f8, _t1=53) at .moc/release-shared/moc_qsocketnotifier.cpp:89
#63 0xb609a347 in QSocketNotifier::event (this=0xb9de1f8, e=0xbfeff434) at kernel/qsocketnotifier.cpp:317
#64 0xb557bfdc in QApplicationPrivate::notify_helper (this=0x8cab9d8, receiver=0xb9de1f8, e=0xbfeff434) at kernel/qapplication.cpp:4396
#65 0xb558204e in QApplication::notify (this=0xbfeff934, receiver=0xb9de1f8, e=0xbfeff434) at kernel/qapplication.cpp:3798
#66 0xb6435f7a in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
#67 0xb607cb3b in QCoreApplication::notifyInternal (this=0xbfeff934, receiver=0xb9de1f8, event=0xbfeff434) at kernel/qcoreapplication.cpp:732
#68 0xb60ab93a in sendEvent (source=0x8cae768) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#69 socketNotifierSourceDispatch (source=0x8cae768) at kernel/qeventdispatcher_glib.cpp:110
#70 0xb4677855 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
---Type <return> to continue, or q <return> to quit---
#71 0xb467b668 in ?? () from /lib/libglib-2.0.so.0
#72 0xb467b848 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#73 0xb60ab565 in QEventDispatcherGlib::processEvents (this=0x8c8eaf0, flags=...) at kernel/qeventdispatcher_glib.cpp:415
#74 0xb563dbe5 in QGuiEventDispatcherGlib::processEvents (this=0x8c8eaf0, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#75 0xb607b609 in QEventLoop::processEvents (this=0xbfeff6d4, flags=) at kernel/qeventloop.cpp:149
DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece or DW_OP_bit_piece.
#76 0xb607ba8a in QEventLoop::exec (this=0xbfeff6d4, flags=...) at kernel/qeventloop.cpp:201
#77 0xb608000f in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1009
#78 0xb557ae07 in QApplication::exec () at kernel/qapplication.cpp:3672
#79 0x08053600 in main ()


Reproducible: Didn't try
Comment 1 Chaos A.D. 2011-02-24 10:49:30 UTC
Reproducible: pretty easily :)
Version: 4.2.60
Comment 2 Milian Wolff 2011-02-28 17:48:56 UTC
how do you trigger this?
Comment 3 Chaos A.D. 2011-02-28 17:54:33 UTC
by opening my cmake project with ~15 files, 2 of them with "using namespace blah::blah".
Comment 4 Milian Wolff 2011-02-28 19:35:13 UTC
is this project public, can we test it? I do not get this lockup for my projects.
Comment 5 Chaos A.D. 2011-02-28 22:10:03 UTC
Nope, it's not, unfortunally. 
But I can try to reproduce it by experimenting with 'using namespace' in this project, and then, in case of success, strip it down to minimalistic testcase for you.

I was hoping that the reason may be in some recent commits, and it will be obvious to find deadlock looking to callstack.
Comment 6 Chaos A.D. 2011-03-01 10:14:41 UTC
sorry, won't reproduce :(
Comment 7 Milian Wolff 2013-01-09 19:20:51 UTC
Sorry but such a deadlock will need more information to be resolved properly I'm afraid. If you ever find a way to reproduce this issue please let me know.

From the backtrace alone it more looks like a deadlock in DUChainLock::lockForWrite... I'll try to create a test for that and see whether I can reproduce anything...
Comment 8 Milian Wolff 2013-01-09 20:01:15 UTC
Git commit 36f9c05c650e48658c331df9a919b2d81132e7da by Milian Wolff.
Committed on 09/01/2013 at 20:59.
Pushed by mwolff into branch 'master'.

Add three tests to check for deadlocks in the DUChainRead/Write locks.

For me I cannot find any deadlock using this test, even though it
continuously locks the duchain for read/write in multiple threads.

M  +99   -0    language/duchain/tests/test_duchain.cpp
M  +3    -0    language/duchain/tests/test_duchain.h

http://commits.kde.org/kdevplatform/36f9c05c650e48658c331df9a919b2d81132e7da
Comment 9 David Faure 2013-03-13 00:04:31 UTC
Got this deadlock today, due to ContextUsesWidget::linkWasActivated: it starts with    DUChainReadLocker lock(DUChain::lock());
and keeps that locked when calling openDocument(), which (via many layers) ends up KDevelop::DUChain::documentLoadedPrepare, which creates a write locker.
-> deadlock (or assertion first, in debug mode).

Testcase: open kdepim, go to MessageList::Core::Model::setStorageModel, Show uses (of that method), click on the link to "View::setStorageModel" at the bottom. Boom.
Comment 10 David Faure 2013-03-13 00:42:14 UTC
commit 15c8a3af8bec36ba73fc307eb1d4296949ab14d0
Author: David Faure <faure@kde.org>
Date:   Wed Mar 13 01:25:03 2013 +0100

    Release the DUChain::lock() before calling openDocument
    
    We get an assert (debug) / deadlock (release) otherwise, in the case where
    a new view needs to be opened (KDevelop::DUChain::documentLoadedPrepare)
    
    CCBUG: 267042
    (not closing, because the original bt is in IDebugSession::showStepInSource)

kdevplatform/language/duchain/navigation/useswidget.cpp

(and going through the OP's backtrace, I can't find an unreleased readlocker in these methods. But of course the code might have changed since then...)
Comment 11 Aleix Pol 2013-03-31 00:56:53 UTC
Moving all the bugs from the CPP Parser. It was not well defined the difference between it and C++ Language Support and people kept reporting in both places indistinctively