I’m on Debian 12 with Plasma 5.27. Wayland on Intel graphics (if it matters). I pretty regularly see plasmashell stop responding for several minutes, and top shows it spinning at 100%. This happens maybe every 10 or 15 minutes. I’m unable to interact with the KDE toolbar to open programs or switch windows, however alt-tab still works. When I strace the process, I see it reading from /proc/self/mountinfo, /run/user/*/gvfs, and /run/mount/utab over and over again in what appears to be a tight loop.
This system does happen to have about 350 active mounts, mostly NFS mounts via autofs, but none of them are stuck or hung. The set of mountpoints does change as autofs unmounts them after a period of time, but that’s not very frequent. Plasmashell is just repeatedly opening these mountinfo files and reading the contents. Here’s a sample of the output from strace -tt -p $(pidof plasmashell) |& grep open
:
10:28:48.915881 openat(AT_FDCWD, "/run/mount/utab", O_RDONLY|O_CLOEXEC) = 224
10:28:48.917247 openat(AT_FDCWD, "/run/user/8279/gvfs", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 224
10:28:48.917520 openat(AT_FDCWD, "/run/user/16687/gvfs", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = -1 EACCES (Permission denied)
10:28:48.918207 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY|O_CLOEXEC) = 224
10:28:48.921823 openat(AT_FDCWD, "/run/mount/utab", O_RDONLY|O_CLOEXEC) = 224
10:28:48.923190 openat(AT_FDCWD, "/run/user/8279/gvfs", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 224
10:28:48.923639 openat(AT_FDCWD, "/run/user/16687/gvfs", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = -1 EACCES (Permission denied)
10:28:48.924601 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY|O_CLOEXEC) = 224
10:28:48.928172 openat(AT_FDCWD, "/run/mount/utab", O_RDONLY|O_CLOEXEC) = 224
10:28:48.929542 openat(AT_FDCWD, "/run/user/8279/gvfs", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 224
10:28:48.929923 openat(AT_FDCWD, "/run/user/16687/gvfs", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = -1 EACCES (Permission denied)
10:28:48.930791 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY|O_CLOEXEC) = 224
10:28:48.935923 openat(AT_FDCWD, "/run/mount/utab", O_RDONLY|O_CLOEXEC) = 224
10:28:48.937794 openat(AT_FDCWD, "/run/user/8279/gvfs", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 224
10:28:48.938120 openat(AT_FDCWD, "/run/user/16687/gvfs", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = -1 EACCES (Permission denied)
10:28:48.939082 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY|O_CLOEXEC) = 224
10:28:48.946773 openat(AT_FDCWD, "/run/mount/utab", O_RDONLY|O_CLOEXEC) = 224
10:28:48.949207 openat(AT_FDCWD, "/run/user/8279/gvfs", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 224
10:28:48.949820 openat(AT_FDCWD, "/run/user/16687/gvfs", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = -1 EACCES (Permission denied)
10:28:48.951346 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY|O_CLOEXEC) = 224
10:28:48.957602 openat(AT_FDCWD, "/run/mount/utab", O_RDONLY|O_CLOEXEC) = 224
10:28:48.959930 openat(AT_FDCWD, "/run/user/8279/gvfs", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 224
10:28:48.960476 openat(AT_FDCWD, "/run/user/16687/gvfs", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = -1 EACCES (Permission denied)
10:28:48.961682 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY|O_CLOEXEC) = 224
10:28:48.968838 openat(AT_FDCWD, "/run/mount/utab", O_RDONLY|O_CLOEXEC) = 224
10:28:48.971485 openat(AT_FDCWD, "/run/user/8279/gvfs", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 224
10:28:48.972187 openat(AT_FDCWD, "/run/user/16687/gvfs", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = -1 EACCES (Permission denied)
10:28:48.973694 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY|O_CLOEXEC) = 224
10:28:48.981220 openat(AT_FDCWD, "/run/mount/utab", O_RDONLY|O_CLOEXEC) = 224
10:28:48.983585 openat(AT_FDCWD, "/run/user/8279/gvfs", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 224
10:28:48.984100 openat(AT_FDCWD, "/run/user/16687/gvfs", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = -1 EACCES (Permission denied)
10:28:48.985085 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY|O_CLOEXEC) = 224
10:28:48.990530 openat(AT_FDCWD, "/run/mount/utab", O_RDONLY|O_CLOEXEC) = 224
If I remove the grep from the pipeline, I can see that it is reading the full contents of /proc/self/mountinfo, and /run/mount/utab repeatedly.
I don’t know what part of KDE is causing this behavior. I don’t have file search enabled. I’ve tried disabling the “Locations” plugin and the “Places” plugin in the “Plasma Search” settings. Any other suggestions for debugging tips or components I might be able to disable?