frequent beachballing

Milian Wolff mail at milianw.de
Sat Feb 20 21:06:58 UTC 2016


On Freitag, 19. Februar 2016 14:06:33 CET René J.V. Bertin wrote:
> 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"

Thats unrelated.

> 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=0x000
> 000012c806a20) 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=0x000000010b63877
> 0, 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

Ok, that is actually useful. Please put it into a report on bugs.kde.org so we 
can look into it eventually. I think I actually also see that on Linux when 
opening a project on a slower hard disk. In general, we must not trigger that 
codepath from the main thread.

> 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.

That seems to be another unrelated issue. Please report that also on 
bugs.kde.org.

Bye

-- 
Milian Wolff
mail at milianw.de
http://milianw.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kdevelop/attachments/20160220/19de76b7/attachment.sig>


More information about the KDevelop mailing list