Skip to content

Remove nested eventloop crash when clicking on notification

Milian Wolff requested to merge (removed):fix-notification into master

Nested eventloops are evil, they can lead to the notification being deleted while its code is still running.

Just remove the dialog to fix it - if I click on the notification I want to go to the room and not have to interact with another dialog. I.e. in my POV, this also improves the usability of ruqola.

Application: Ruqola (ruqola), signal: Segmentation fault
Content of s_kcrashErrorMessage: (null)
[KCrash Handler]
#5  0x00007f6fd3e0e170 in QObjectPrivate::maybeSignalConnected(unsigned int) const () at /usr/lib/libQt5Core.so.5
#6  0x00007f6fd3e1b5d5 in  () at /usr/lib/libQt5Core.so.5
#7  0x00007f6fd6fb4901 in KNotification::activated(unsigned int) (this=0x5578bc13d060, _t1=0) at src/KF5Notifications_autogen/EWIEGA46WW/moc_knotification.cpp:271
#8  0x00007f6fd6fbadbd in KNotification::activate(unsigned int) (this=0x5578bc13d060, action=0) at /home/milian/projects/kf5/src/frameworks/knotifications/src/knotification.cpp:330
#9  0x00007f6fd6fbf4a7 in KNotificationManager::notificationActivated(int, int) (this=0x7f6fd70216b0 <(anonymous namespace)::Q_QGS_s_self::innerFunction()::holder>, id=9, action=0) at /home/milian/projects/kf5/src/frameworks/knotifications/src/knotificationmanager.cpp:243
#10 0x00007f6fd6fc3fac in QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1>, QtPrivate::List<int, int>, void, void (KNotificationManager::*)(int, int)>::call(void (KNotificationManager::*)(int, int), KNotificationManager*, void**) (f=(void (KNotificationManager::*)(KNotificationManager * const, int, int)) 0x7f6fd6fbf38e <KNotificationManager::notificationActivated(int, int)>, o=0x7f6fd70216b0 <(anonymous namespace)::Q_QGS_s_self::innerFunction()::holder>, arg=0x7ffecc2c8260) at /usr/include/qt/QtCore/qobjectdefs_impl.h:152
#11 0x00007f6fd6fc3bac in QtPrivate::FunctionPointer<void (KNotificationManager::*)(int, int)>::call<QtPrivate::List<int, int>, void>(void (KNotificationManager::*)(int, int), KNotificationManager*, void**) (f=(void (KNotificationManager::*)(KNotificationManager * const, int, int)) 0x7f6fd6fbf38e <KNotificationManager::notificationActivated(int, int)>, o=0x7f6fd70216b0 <(anonymous namespace)::Q_QGS_s_self::innerFunction()::holder>, arg=0x7ffecc2c8260) at /usr/include/qt/QtCore/qobjectdefs_impl.h:185
#12 0x00007f6fd6fc3490 in QtPrivate::QSlotObject<void (KNotificationManager::*)(int, int), QtPrivate::List<int, int>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x5578ba921da0, r=0x7f6fd70216b0 <(anonymous namespace)::Q_QGS_s_self::innerFunction()::holder>, a=0x7ffecc2c8260, ret=0x0) at /usr/include/qt/QtCore/qobjectdefs_impl.h:418
#13 0x00007f6fd3e1ba26 in  () at /usr/lib/libQt5Core.so.5
#14 0x00007f6fd6fb4f68 in KNotificationPlugin::actionInvoked(int, int) (this=0x5578ba9233c0, _t1=9, _t2=0) at src/KF5Notifications_autogen/EWIEGA46WW/moc_knotificationplugin.cpp:155
#15 0x00007f6fd6fdf7ed in NotifyByPopup::onNotificationActionInvoked(unsigned int, QString const&) (this=0x5578ba9233c0, notificationId=108, actionKey=...) at /home/milian/projects/kf5/src/frameworks/knotifications/src/notifybypopup.cpp:219

Merge request reports