https://bugs.kde.org/show_bug.cgi?id=465357
Bug ID: 465357 Summary: Dolphin's UI freezes when stat() is slow Classification: Applications Product: dolphin Version: 22.12.2 Platform: Other OS: Linux Status: REPORTED Severity: normal Priority: NOR Component: general Assignee: dolphin-bugs-n...@kde.org Reporter: accounts+...@chiller3.com CC: kfm-de...@kde.org Target Milestone: --- Created attachment 155992 --> https://bugs.kde.org/attachment.cgi?id=155992&action=edit A patch to skip directory counts when KFileItem::isSlow SUMMARY When stat() does not complete quickly, Dolphin's UI freezes until it returns. This seems to be the root cause for the freezes I'm encountering. Specifically, when I try to access a `cifs` mount point, Dolphin kicks off `KDirectoryContentsCounter.scanDirectory()` for all the subdirectories visible on screen. The opendir/readdir calls are enough to slow down the server to the point where each stat takes a couple of seconds. Once stat starts slowing down, the Dolphin's UI stops responding. I've been working around the problem by making Dolphin skip `KDirectoryContentsCounter.scanDirectory()` if `KFileItem::isSlow()` is true (patch attached). Even though this hides the issue, I wonder if it may be good to have anyway since it matches the behavior of kio smb://, where directory counts don't happen. STEPS TO REPRODUCE To avoid the need to connect to a slow server, I've attached an LD_PRELOAD'able library to help reproduce this. It slows down all stat calls to paths under /home/, except for paths containing "/." so that Dolphin's startup isn't slowed down when reading configs. 1. $ g++ -shared -fPIC slow_stat.cpp -o slow_stat.so 2. $ LD_PRELOAD=$(pwd)/slow_stat.so dolphin 3. Navigate to somewhere under /home/ 4. Try to perform UI actions, like hovering over items, selecting, right clicking, opening menus, etc. OBSERVED RESULT Dolphin's UI freezes until stat returns EXPECTED RESULT Dolphin should ideally remain responsive while stat occurs SOFTWARE/OS VERSIONS Windows: n/a macOS: n/a Linux/KDE Plasma: Fedora 37 KDE Plasma Version: 5.26.5 KDE Frameworks Version: 5.102.0 Qt Version: 5.15.8 ADDITIONAL INFORMATION (Patch for my workaround is attached) I've also tried compiling the latest commit in dolphin (580f3bf0d5c8735cf230208fd6e4b288a3e55722) and there's no change in behavior. -- You are receiving this mail because: You are watching all bug changes.