Bug 388743 - Long UI freeze
Summary: Long UI freeze
Status: RESOLVED FIXED
Alias: None
Product: kdevplatform
Classification: Developer tools
Component: language (show other bugs)
Version: git master
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: kdevelop-bugs-null
URL:
Keywords: triaged
Depends on:
Blocks:
 
Reported: 2018-01-09 17:57 UTC by Wood
Modified: 2019-02-13 04:17 UTC (History)
0 users

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Wood 2018-01-09 17:57:06 UTC
doMoreCleanup function line 761, which is calling usleep is called 33488 times (strace kdevelop through an UI freeze). The UI was frozen for more than 3 minutes.
Comment 1 Wood 2018-01-09 17:58:40 UTC
In file duchain.cpp
Comment 2 Milian Wolff 2018-01-10 08:02:24 UTC
can you show the full backtrace please? was tis happening at shutdown? otherwise the cleanup should happen in a background thread.
Comment 3 Wood 2018-01-10 13:47:49 UTC
This was not at shutdown, I was just using the ide normally. I didn't save the stack trace from yesterday but this UI freeze is very frequent so I'll try to capture the trace today.
Comment 4 Wood 2018-01-10 19:22:05 UTC
Snippet of the callstack

KDevelop::DUChainPrivate::doMoreCleanup ()
QMetaObject::activate ()
QTimer::timerEvent()
...
KDevelop::DUChainPrivate::CleanupThread::run()
Comment 5 Milian Wolff 2018-01-11 09:37:19 UTC
please paste the _full_ backtrace _of all threads_

(gdb) thread apply all bt
Comment 6 Andrew Crouthamel 2018-09-28 03:20:46 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 set the bug status 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 Andrew Crouthamel 2018-10-29 02:18:16 UTC
Dear Bug Submitter,

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!
Comment 8 Milian Wolff 2019-01-10 15:15:36 UTC
reopening, I just hit the same and figured out the issue - I'll fix it asap

    #0  0x00007fd4ef7786a8 in nanosleep () from /usr/lib/libc.so.6
    #1  0x00007fd4efe73f0f in ?? () from /usr/lib/libQt5Core.so.5
    #2  0x00007fd4f2e3465a in KDevelop::DUChainPrivate::doMoreCleanup (this=0x7fd4f3521e40 <KDevelop::(anonymous namespace)::Q_QGS_sdDUChainPrivate::innerFunction()::holder>, retries=1,
        lockFlag=KDevelop::DUChainPrivate::TryLock) at /home/milian/projects/kf5/src/extragear/kdevelop/kdevelop/kdevplatform/language/duchain/duchain.cpp:881
    #3  0x00007fd4f2e310be in KDevelop::DUChainPrivate::CleanupThread::run()::{lambda()#1}::operator()() const (__closure=0x7fd4c00049c0)
        at /home/milian/projects/kf5/src/extragear/kdevelop/kdevelop/kdevplatform/language/duchain/duchain.cpp:320
    #4  0x00007fd4f2e515e9 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, KDevelop::DUChainPrivate::CleanupThread::run()::{lambda()#1}>::call({lambda()#1}&, void**) (f=...,
        arg=0x7fd4c008fca0) at /usr/include/qt/QtCore/qobjectdefs_impl.h:146
    #5  0x00007fd4f2e4ed7f in QtPrivate::Functor<KDevelop::DUChainPrivate::CleanupThread::run()::{lambda()#1}, 0>::call<QtPrivate::List<>, void>({lambda()#1}&, void*, {lambda()#1}&*) (f=..., arg=0x7fd4c008fca0)
        at /usr/include/qt/QtCore/qobjectdefs_impl.h:256
    #6  0x00007fd4f2e48297 in QtPrivate::QFunctorSlotObject<KDevelop::DUChainPrivate::CleanupThread::run()::{lambda()#1}, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x7fd4c00049b0, r=0x55f093be8960, a=0x7fd4c008fca0, ret=0x0) at /usr/include/qt/QtCore/qobjectdefs_impl.h:439
    #7  0x00007fd4efe49b62 in QObject::event(QEvent*) () from /usr/lib/libQt5Core.so.5
    #8  0x00007fd4f0c2ee34 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
    #9  0x00007fd4f0c36671 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
    #10 0x00007fd4efe1e8f9 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
    #11 0x00007fd4efe21998 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQt5Core.so.5
    #12 0x00007fd4efe74fd4 in ?? () from /usr/lib/libQt5Core.so.5
    #13 0x00007fd4ecef5a2f in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
    #14 0x00007fd4ecef75e9 in ?? () from /usr/lib/libglib-2.0.so.0
    #15 0x00007fd4ecef762e in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
    #16 0x00007fd4efe745a9 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
    #17 0x00007fd4efe1d58c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
    #18 0x00007fd4efe25896 in QCoreApplication::exec() () from /usr/lib/libQt5Core.so.5
    #19 0x000055f091e015e1 in main (argc=3, argv=0x7ffdb89c4738) at /home/milian/projects/kf5/src/extragear/kdevelop/kdevelop/app/main.cpp:846

sorry for this!
Comment 9 Milian Wolff 2019-01-10 15:24:35 UTC
fixed in 5.3 and master now
Comment 10 Wood 2019-02-13 04:17:11 UTC
(In reply to Milian Wolff from comment #9)
> fixed in 5.3 and master now

Thanks for the fix!!! Just for saying that with this patch, kdevelop UI is so more snappier (even auto-completion), in my opinion this fix deserves a new official release by itself.