Bug 501011

Summary: infinite recursion involving KStatusNotifierItem
Product: [Frameworks and Libraries] frameworks-kstatusnotifieritem Reporter: Christoph Lemannczick <email>
Component: generalAssignee: Alexander Lohnau <alexander.lohnau>
Status: REPORTED ---    
Severity: crash CC: fanzhuyifan, thiago
Priority: NOR Keywords: X11-only
Version First Reported In: 6.11.0   
Target Milestone: ---   
Platform: Debian testing   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: gdb backtrace

Description Christoph Lemannczick 2025-03-03 16:07:28 UTC
Created attachment 179071 [details]
gdb backtrace

SUMMARY
An application(OBS) enters infinite recursion involving KStatusNotifierItem shortly after startup. 

STEPS TO REPRODUCE
The crash happens consistently every time I start the application without any additional steps.

OBSERVED RESULT
The process opens dbus sockets until it hits the limit for open files and crashes.

SOFTWARE/OS VERSIONS
Operating System: Debian GNU/Linux 12
KDE Plasma Version: 6.3.0
KDE Frameworks Version: 6.11.0
Qt Version: 6.7.2
Kernel Version: 6.12.12-amd64 (64-bit)
Graphics Platform: X11
Processors: 8 × Intel® Core™ i7-4790K CPU @ 4.00GHz
Memory: 15.6 GiB of RAM
Graphics Processor: NVIDIA GeForce GTX 970

ADDITIONAL INFORMATION
Issue opened with the application(OBS): https://github.com/obsproject/obs-studio/issues/11902
Issue opened with Qt: https://bugreports.qt.io/browse/QTBUG-134227

As seen in the stack trace there's an infinite recursion between involving the following functions:
KStatusNotifierItemPrivate::setLegacySystemTrayEnabled at ./src/kstatusnotifieritem.cpp:1003
KStatusNotifierItemPrivate::registerToDaemon at ./src/kstatusnotifieritem.cpp:940
KStatusNotifierItemPrivate::init at ./src/kstatusnotifieritem.cpp:892
KStatusNotifierItem::KStatusNotifierItem at ./src/kstatusnotifieritem.cpp:63
KDEPlatformSystemTrayIcon::init at ./qt6/src/platformtheme/kdeplatformsystemtrayicon.cpp:304
KDEPlatformSystemTrayIcon::init at ./qt6/src/platformtheme/kdeplatformsystemtrayicon.cpp:301
QSystemTrayIcon::setVisible(bool) at /lib/x86_64-linux-gnu/libQt6Widgets.so.6
QSystemTrayIcon::show at /usr/include/x86_64-linux-gnu/qt6/QtWidgets/qsystemtrayicon.h:66