Bug 362863

Summary: Recursion between KDE Platform Theme and QSystemTrayIcon (when not using Plasma)
Product: [Plasma] plasma-integration Reporter: Dmitry Shachnev <mitya57>
Component: generalAssignee: Martin Flöser <mgraesslin>
Status: RESOLVED DUPLICATE    
Severity: crash    
Priority: NOR    
Version First Reported In: master   
Target Milestone: ---   
Platform: Debian unstable   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description Dmitry Shachnev 2016-05-09 19:06:24 UTC
When StatusNotifier is not available (i.e. when not using Plasma), KNotifications tries to fall back to Qt's implementation, however that actually leads to infinite recursion.

See https://bugs.debian.org/807805 for the original bug report.

Reproducible: Always

Steps to Reproduce:
1. Use an environment without StatusNotifier support
2. Use KDE Platform Theme
3. Try to run Vlc (any other application that has a system tray icon should also work)

Actual Results:  
Infinite recursion that leads to stack overflow and crash

Expected Results:  
No crash

Fragment of a stack trace demonstrating a loop (Qt version is 5.5.1):

#18 0x00007fffe5a13b27 in QSystemTrayIcon::setVisible (this=<optimized out>, visible=visible@entry=true) at util/qsystemtrayicon.cpp:271
#19 0x00007fffd33b2f95 in QSystemTrayIcon::show (this=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qsystemtrayicon.h:95
#20 KStatusNotifierItemPrivate::setLegacySystemTrayEnabled (this=this@entry=0x7fffd6ba3720, enabled=enabled@entry=true) at ../../src/kstatusnotifieritem.cpp:808
#21 0x00007fffd33b3fbd in KStatusNotifierItemPrivate::registerToDaemon (this=this@entry=0x7fffd6ba3720) at ../../src/kstatusnotifieritem.cpp:744
#22 0x00007fffd33b53fb in KStatusNotifierItemPrivate::init (this=this@entry=0x7fffd6ba3720, extraId=...) at ../../src/kstatusnotifieritem.cpp:722
#23 0x00007fffd33b57fe in KStatusNotifierItem::KStatusNotifierItem (this=0x7fffd6ba3320, parent=<optimized out>) at ../../src/kstatusnotifieritem.cpp:55
#24 0x00007fffd3be67e7 in KDEPlatformSystemTrayIcon::init (this=0x7fffd6ba1f80) at ../../../src/platformtheme/kdeplatformsystemtrayicon.cpp:270
#25 0x00007fffe5a14024 in QSystemTrayIconPrivate::install_sys_qpa (this=this@entry=0x7fffd6ba2f60) at util/qsystemtrayicon.cpp:684
#26 0x00007fffe5a310be in QSystemTrayIconPrivate::install_sys (this=this@entry=0x7fffd6ba2f60) at util/qsystemtrayicon_x11.cpp:280
#27 0x00007fffe5a13b27 in QSystemTrayIcon::setVisible (this=<optimized out>, visible=visible@entry=true) at util/qsystemtrayicon.cpp:271
Comment 1 Martin Flöser 2016-05-10 05:59:43 UTC

*** This bug has been marked as a duplicate of bug 350785 ***