maintainer-feedback requested: [Bug 295605] Konsole 26.04.1 uses 100% CPU on FreeBSD 15 while resolving file descriptor paths through ZFS
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Tue May 26 09:42:42 BST 2026
Bugzilla Automation <bugzilla at FreeBSD.org> has asked freebsd-kde (group)
<kde at FreeBSD.org> 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.
More information about the kde-freebsd
mailing list