[dolphin] [Bug 465357] Dolphin's UI freezes when stat() is slow

Andrew Gunnerson bugzilla_noreply at kde.org
Wed Feb 8 02:42:00 GMT 2023


https://bugs.kde.org/show_bug.cgi?id=465357

--- Comment #5 from Andrew Gunnerson <accounts+kde at chiller3.com> ---
I submitted an MR for skipping directory counts when KFileItem::isSlow() here:
https://invent.kde.org/system/dolphin/-/merge_requests/507

---

Regarding the slow stat() calls blocking the UI, I did some further
investigation. The stat() calls are coming from KIO::WorkerThread threads, not
the UI thread. The stack trace looks something like this:

    Thread 14 (Thread 0x7fffbd7fa6c0 (LWP 255122) "KIO::WorkerThre"):
    #0  stat (pathname=0x7fff9c00abe8 "/home/chenxiaolong",
statbuf=0x7fffbd7f9780) at slow_stat.cpp:35
    #1  0x00007ffff6f16646 in acl_get_file (path_p=0x7fff9c00abe8
"/home/chenxiaolong", type=16384) at libacl/acl_get_file.c:73
    #2  0x00007fffd80be93e in createUDSEntry(QString const&, QByteArray const&,
KIO::UDSEntry&, QFlags<KIO::StatDetail>, QString const&) [clone .lto_priv.0] ()
from /usr/lib64/qt5/plugins/kf5/kio/kio_file.so
    #3  0x00007fffd80c64c6 in FileProtocol::stat(QUrl const&) () from
/usr/lib64/qt5/plugins/kf5/kio/kio_file.so
    #4  0x00007ffff790ff15 in KIO::SlaveBase::dispatch(int, QByteArray const&)
() from /lib64/libKF5KIOCore.so.5
    #5  0x00007ffff790869e in KIO::SlaveBase::dispatchLoop() () from
/lib64/libKF5KIOCore.so.5
    #6  0x00007ffff7983553 in KIO::WorkerThread::run() () from
/lib64/libKF5KIOCore.so.5
    #7  0x00007ffff5ae8507 in QThreadPrivate::start (arg=0x555555683ff0) at
thread/qthread_unix.cpp:330
    #8  0x00007ffff54ae12d in start_thread (arg=<optimized out>) at
pthread_create.c:442
    #9  0x00007ffff552fbc0 in clone3 () at
../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Since the UI is freezing despite the slow stat calls being on another thread,
I'm assuming there's a StatJob::exec()/KJob::exec() call somewhere forcing the
UI to wait for its completion. Unfortunately, I've had no luck at all tracking
down where the job came from.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the kfm-devel mailing list