frequent beachballing

René J.V. Bertin rjvbertin at gmail.com
Fri Feb 19 13:06:33 UTC 2016


On Sunday February 07 2016 16:08:41 Milian Wolff wrote:

> Yes, don't guess - measure. Attach a debugger and grab a backtrace when 
> kdevelop freezes. Or use a profiler and measure sleep time.

Backtrace below. The beachballing freeze is preceded by a whole slew of messages of the form

kdevelop.plugins.clang: Detected an invalid declaration for "CFPropertyListFormat::kCFPropertyListXMLFormat_v1_0"
kdevelop.plugins.clang: Detected an invalid declaration for "CSSM_DL_DB_SCHEMA_ATTRIBUTES"
kdevelop.plugins.clang: Detected an invalid declaration for "keyAEDoAntiAlias"
kdevelop.plugins.clang: Detected an invalid declaration for "kLetterCaseType"
kdevelop.plugins.clang: Detected an invalid declaration for "fsmDuplicateFSIDErr"
kdevelop.plugins.clang: Detected an invalid declaration for "NSPropertyListFormat::NSPropertyListXMLFormat_v1_0"
kdevelop.plugins.clang: Detected an invalid declaration for "kPMScalingPinTopRight"

I'm not 100% sure if that's always the case but have yet to run into a situation where it this doesn't happen.

(lldb) bt
* thread #1: tid = 0x4f9fbd, 0x00007fff8e6a8dfa libsystem_kernel.dylib`stat$INODE64 + 10, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
  * frame #0: 0x00007fff8e6a8dfa libsystem_kernel.dylib`stat$INODE64 + 10
    frame #1: 0x00000001034bd619 QtCore`QFileSystemEngine::fillMetaData(entry=0x00000001531d5548, data=0x00000001531d5560, what=<unavailable>) + 297 at qfilesystemengine_unix.cpp:480
    frame #2: 0x0000000103466de1 QtCore`QFileInfo::isFile(this=<unavailable>) const + 81 at qfileinfo.cpp:1010
    frame #3: 0x000000010345e67a QtCore`QDirIteratorPrivate::matchesFilters(this=0x000000014ee03880, fileName=<unavailable>, fi=0x00007fff5fbfb368) const + 410 at qdiriterator.cpp:356
    frame #4: 0x000000010345df86 QtCore`QDirIteratorPrivate::advance(this=0x000000014ee03880) + 934 at qdiriterator.cpp:249
    frame #5: 0x000000010345d5e4 QtCore`QDirIteratorPrivate::QDirIteratorPrivate(this=<unavailable>, entry=<unavailable>, nameFilters=<unavailable>, resolveEngine=<unavailable>, filters=<unavailable>, flags=<unavailable>) + 1108 at qdiriterator.cpp:169
    frame #6: 0x000000010345eb96 QtCore`QDirIterator::QDirIterator(this=0x00007fff5fbfb5b0, path=<unavailable>, nameFilters=<unavailable>, filters=<unavailable>, flags=<unavailable>) + 86 at qdiriterator.cpp:459
    frame #7: 0x00000001034549c1 QtCore`QDir::entryList(this=<unavailable>, nameFilters=<unavailable>, filters=<unavailable>, sort=<unavailable>) const + 401 at qdir.cpp:1320
    frame #8: 0x000000010345481c QtCore`QDir::entryList(this=<unavailable>, filters=<unavailable>, sort=<unavailable>) const + 28 at qdir.cpp:1262
    frame #9: 0x000000012b7375a6 kdevclangsupport.so`(anonymous namespace)::scanIncludePaths(identifier=0x00007fff5fbfbb80, dir=<unavailable>, maxDepth=0) + 1126 at unknowndeclarationproblem.cpp:107
    frame #10: 0x000000012b7376de kdevclangsupport.so`(anonymous namespace)::scanIncludePaths(identifier=0x00007fff5fbfbb80, dir=<unavailable>, maxDepth=1) + 1438 at unknowndeclarationproblem.cpp:108
    frame #11: 0x000000012b7376de kdevclangsupport.so`(anonymous namespace)::scanIncludePaths(identifier=0x00007fff5fbfbb80, dir=<unavailable>, maxDepth=2) + 1438 at unknowndeclarationproblem.cpp:108
    frame #12: 0x000000012b73534d kdevclangsupport.so`(anonymous namespace)::fixUnknownDeclaration(KDevelop::QualifiedIdentifier const&, KDevelop::Path const&, KDevelop::DocumentRange const&) [inlined] (anonymous namespace)::scanIncludePaths(identifier=<unavailable>, includes=0x000000012ce915b0) + 119 at unknowndeclarationproblem.cpp:121
    frame #13: 0x000000012b7352d6 kdevclangsupport.so`(anonymous namespace)::fixUnknownDeclaration(KDevelop::QualifiedIdentifier const&, KDevelop::Path const&, KDevelop::DocumentRange const&) [inlined] (anonymous namespace)::includeFiles(file=0x00007fff5fbfbed0) + 4517 at unknowndeclarationproblem.cpp:420
    frame #14: 0x000000012b734131 kdevclangsupport.so`(anonymous namespace)::fixUnknownDeclaration(identifier=<unavailable>, file=0x00007fff5fbfbed0, docrange=<unavailable>) + 4625 at unknowndeclarationproblem.cpp:456
    frame #15: 0x000000012b732c99 kdevclangsupport.so`UnknownDeclarationProblem::solutionAssistant(this=0x000000012c806a20) const + 169 at unknowndeclarationproblem.cpp:510
    frame #16: 0x0000000103caa494 libKDevPlatformLanguage.10.dylib`KDevelop::StaticAssistantsManager::Private::checkAssistantForProblems(this=0x000000011aa3f340, top=<unavailable>) + 500 at staticassistantsmanager.cpp:290
    frame #17: 0x0000000103caa8b7 libKDevPlatformLanguage.10.dylib`KDevelop::StaticAssistantsManager::Private::timeout(this=<unavailable>) + 135 at staticassistantsmanager.cpp:310
    frame #18: 0x0000000103552a0b QtCore`QMetaObject::activate(QObject*, int, int, void**) [inlined] QtPrivate::QSlotObjectBase::call(this=<unavailable>, r=<unavailable>, a=<unavailable>) + 1963 at qobject_impl.h:124
    frame #19: 0x00000001035529ef QtCore`QMetaObject::activate(sender=0x000000011a5f80b0, signalOffset=<unavailable>, local_signal_index=<unavailable>, argv=<unavailable>) + 1935 at qobject.cpp:3698
    frame #20: 0x000000010354b2f0 QtCore`QObject::event(this=0x000000011a5f80b0, e=<unavailable>) + 48 at qobject.cpp:1220
    frame #21: 0x000000010226d5bb QtWidgets`QApplicationPrivate::notify_helper(this=<unavailable>, receiver=0x000000011a5f80b0, e=0x00007fff5fbfc680) + 251 at qapplication.cpp:3716
    frame #22: 0x0000000102270974 QtWidgets`QApplication::notify(this=<unavailable>, receiver=<unavailable>, e=<unavailable>) + 8212 at qapplication.cpp:3681
    frame #23: 0x00000001035222b3 QtCore`QCoreApplication::notifyInternal(this=<unavailable>, receiver=<unavailable>, event=<unavailable>) + 115 at qcoreapplication.cpp:970
    frame #24: 0x00000001035758c6 QtCore`QTimerInfoList::activateTimers(this=0x000000010b636ef0) + 1270 at qcoreapplication.h:224
    frame #25: 0x000000010d2e5e92 libqcocoa.dylib`QCocoaEventDispatcherPrivate::activateTimersSourceCallback(info=0x000000010b636e70) + 18 at qcocoaeventdispatcher.mm:121
    frame #26: 0x00007fff884c55b1 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
    frame #27: 0x00007fff884b6c62 CoreFoundation`__CFRunLoopDoSources0 + 242
    frame #28: 0x00007fff884b63ef CoreFoundation`__CFRunLoopRun + 831
    frame #29: 0x00007fff884b5e75 CoreFoundation`CFRunLoopRunSpecific + 309
    frame #30: 0x00007fff8e218a0d HIToolbox`RunCurrentEventLoopInMode + 226
    frame #31: 0x00007fff8e2187b7 HIToolbox`ReceiveNextEventCommon + 479
    frame #32: 0x00007fff8e2185bc HIToolbox`_BlockUntilNextEventMatchingListInModeWithFilter + 65
    frame #33: 0x00007fff8e6e524e AppKit`_DPSNextEvent + 1434
    frame #34: 0x00007fff8e6e489b AppKit`-[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 122
    frame #35: 0x00007fff8e6d899c AppKit`-[NSApplication run] + 553
    frame #36: 0x000000010d2e6aad libqcocoa.dylib`QCocoaEventDispatcher::processEvents(this=0x000000010b638770, flags=<unavailable>) + 2189 at qcocoaeventdispatcher.mm:418
    frame #37: 0x000000010351f9dd QtCore`QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) [inlined] QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 381 at qeventloop.cpp:128
    frame #38: 0x000000010351f9c4 QtCore`QEventLoop::exec(this=0x00007fff5fbfe010, flags=<unavailable>) + 356 at qeventloop.cpp:204
    frame #39: 0x0000000103522855 QtCore`QCoreApplication::exec() + 325 at qcoreapplication.cpp:1234
    frame #40: 0x00000001000186db kdevelop.bin`main(argc=2, argv=<unavailable>) + 51611 at main.cpp:753
    frame #41: 0x00007fff8fd755fd libdyld.dylib`start + 1

I've also been seeing messages like this in /var/log/system.log :
kdevelop.bin[63801]: dynamic_cast error 1: Both of the following type_info's should have public visibility.  At least one of them is hidden. N8KDevelop8IProblemE, 12ClangProblem.
That's about KDevelop::IProblem and ClangProblem ; these messages are printed by the (libC++?) runtime. They seem to be related to the clang-based parser, but have no idea at the moment if these are anything more than warnings. All I can say is that the situation that leads to the warning message also led to dynamic_cast<> failure in other code.

R.



More information about the KDevelop mailing list