maintainer-feedback requested: [Bug 295605] Konsole 26.04.1 uses 100% CPU on FreeBSD 15 while resolving file descriptor paths through ZFS
[email protected] Tue, 26 May 2026 08:42:42 +0000
| Newsgroups | gmane.comp.kde.freebsd |
|---|---|
| Message-ID | <[email protected]/bugzilla/> |
Bugzilla Automation <[email protected]> has asked freebsd-kde (group) <[email protected]> for maintainer-feedback: Bug 295605: Konsole 26.04.1 uses 100% CPU on FreeBSD 15 while resolving file descriptor paths through ZFS https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=295605 --- Description --- On FreeBSD 15.0-RELEASE-p4, Konsole can become stuck using one full CPU core. The affected process is Konsole itself, not the shell or build process running inside the terminal. In my case, Konsole was hosting a root portupgrade session building llvm19. The build was running under ninja -j20 -v all, but at the time of inspection the ninja process was not consuming CPU. Konsole PID 40989 was using about 99% CPU and had around 2.1 GB RSS. The kernel stack for the busy Konsole thread repeatedly showed sysctl_kern_proc_filedesc resolving vnode paths through ZFS: 40989 117275 konsole - fzap_cursor_retrieve+0x349 zap_cursor_retrieve+0x1e6 zap_value_search+0x8f zfs_znode_parent_and_name+0xbf zfs_vptocnp+0x1cd vn_vptocnp+0x17f vn_fullpath_dir+0x102 vn_fullpath_any+0x59 vn_fullpath+0xd2 vn_fill_kinfo_vnode+0x41 vn_fill_kinfo+0x45 export_file_to_kinfo+0x144 kern_proc_filedesc_out+0x387 sysctl_kern_proc_filedesc+0x8d sysctl_root_handler_locked+0x91 sysctl_root+0x2a5 userland_sysctl+0x188 sys___sysctl+0x65 Other Konsole threads were sleeping in poll/select: 40989 267255 konsole QDBusConnectionMana sleep/select 40989 267256 konsole QXcbEventQueue sleep/select This suggests that Konsole is repeatedly querying process file descriptor information, and the FreeBSD kernel is spending a full CPU core resolving file descriptor paths through ZFS. System Information FreeBSD dal 15.0-RELEASE-p4 FreeBSD 15.0-RELEASE-p4 GENERIC amd64 Konsole package: konsole-26.04.1 Origin: x11/konsole Architecture: FreeBSD:15:amd64 Repository: FreeBSD-ports Build timestamp: 2026-05-19T02:18:35+0000 Process Tree /usr/local/bin/konsole PID 40989 /usr/local/bin/bash su - -su ruby33: portupgrade: [42/123] llvm19-19.1.7_2 /usr/bin/script -qa /tmp/portupgrade... make make /bin/sh -e /tmp/make... ninja -j20 -v all At the time of inspection: PID 40989 konsole: ~99% CPU PID 89215 ninja: ~0% CPU There were several defunct child processes below ninja, but they were not consuming CPU. Observed Behavior Konsole uses one full CPU core continuously. The active running thread is in sysctl_kern_proc_filedesc and ZFS path resolution. Expected Behavior Konsole should not continuously burn a full CPU core while a child process is idle or waiting, and it should not repeatedly trigger expensive file descriptor path lookups. Possible Trigger The issue appeared while running a verbose FreeBSD ports build through portupgrade, specifically during llvm19 build with ninja -j20 -v all. The terminal likely had substantial scrollback/output history. Diagnostic Commands Used ps -p 40989 -o pid,ppid,pgid,sid,stat,pcpu,pmem,etime,comm,args pstree -p 40989 -w procstat -kk 40989 procstat -t 40989 procstat -f 40989 procstat -r 40989 89215 41063 pkg info konsole freebsd-version -kru Question Is Konsole expected to query kern.proc.filedesc repeatedly for the foreground session or current directory tracking on FreeBSD? If so, could this be throttled, cached, or avoided when path resolution becomes expensive? Alternatively, this may expose a FreeBSD/ZFS performance issue in vn_fullpath/zfs_vptocnp when called through sysctl_kern_proc_filedesc.