Bug 484838 - Clicking on notifications occasionally crashes Plasmashell in ShellCorona::screenInvariants()
Summary: Clicking on notifications occasionally crashes Plasmashell in ShellCorona::sc...
Status: RESOLVED FIXED
Alias: None
Product: plasmashell
Classification: Plasma
Component: Desktop Containment (show other bugs)
Version: 6.0.3
Platform: openSUSE Linux
: NOR crash
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-03-31 20:36 UTC by Mark
Modified: 2024-11-15 16:26 UTC (History)
6 users (show)

See Also:
Latest Commit:
Version Fixed In: 6.2.4
Sentry Crash Report: https://crash-reports.kde.org/organizations/kde/issues/5387/


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Mark 2024-03-31 20:36:10 UTC
SUMMARY
After unlocking my desktop, I tried to click on the notification applet which resulted in some stutter before Plasmashell crashed. I'm unsure if the following steps can reproduce it. 

STEPS TO REPRODUCE
1. Lock desktop
2. Unlock desktop
3. Click on notification applet if present

OBSERVED RESULT
Notification applet opens without crashing Plasmashell

EXPECTED RESULT
Plasmashell crashes.

SOFTWARE/OS VERSIONS
Operating System: openSUSE Tumbleweed 20240329
KDE Plasma Version: 6.0.3
KDE Frameworks Version: 6.0.0
Qt Version: 6.6.3
Kernel Version: 6.8.1-1-default (64-bit)
Graphics Platform: Wayland
Processors: 16 × AMD Ryzen 7 5800X 8-Core Processor
Memory: 31.3 GiB of RAM
Graphics Processor: NVIDIA GeForce GTX 1660 SUPER/PCIe/SSE2
Manufacturer: Gigabyte Technology Co., Ltd.
Product Name: B450M DS3H

ADDITIONAL INFORMATION
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=11, no_tid=no_tid@entry=0) at pthread_kill.c:44
        tid = <optimized out>
        ret = 0
        pd = <optimized out>
        old_mask = {__val = {94513001237136}}
        ret = <optimized out>
#1  0x00007effc4894a73 in __pthread_kill_internal (signo=11, threadid=<optimized out>) at pthread_kill.c:78
#2  0x00007effc4841176 in __GI_raise (sig=11) at ../sysdeps/posix/raise.c:26
        ret = <optimized out>
#3  0x00007effc7ad3b93 in KCrash::defaultCrashHandler(int) (sig=11) at /usr/src/debug/kcrash-6.0.0/src/kcrash.cpp:586
        data = {<KCrash::MetadataWriter> = {_vptr.MetadataWriter = 0x7effc7ad87d8 <vtable for KCrash::Metadata+16>}, argv = {_M_elems = {0x0, 0x7effc7ad63f9 "--glrenderer", 0x55f5861461c0 "NVIDIA GeForce GTX 1660 SUPER/PCIe/SSE2", 0x7effc7ad6406 "--platform", 0x55f5936e58b0 "wayland", 0x7effc7ad6437 "--appname", 0x55f585ddbb30 "plasmashell", 0x7effc7ad6441 "--apppath", 0x55f585dd0120 "/usr/bin", 0x7effc7ad644e "--signal", 0x7ffd874c7626 "11", 0x7effc7ad645c "--pid", 0x7ffd874c7630 "2861", 0x7effc7ad6462 "--appversion", 0x55f585dd2b70 "6.0.3", 0x7effc7ad646f "--programname", 0x55f584f37a18 <QByteArray::_empty> "", 0x7effc7ad647d "--bugaddress", 0x55f585dd8a90 "submit@bugs.kde.org", 0x0 <repeats 15 times>}}, argc = 19, m_writer = 0x7ffd874c75d0}
        platformName = {d = {d = 0x55f5936e58a0, ptr = 0x55f5936e58b0 "wayland", size = 7}, static _empty = 0 '\000'}
        about = 0x55f586148350
        argv = 0x7ffd874c7658
        ini = {<KCrash::MetadataWriter> = {_vptr.MetadataWriter = 0x7effc7ad8808 <vtable for KCrash::MetadataINIWriter+16>}, writable = false, fd = 68}
        sigtxt = "11\000zL\207\375\177\000"
        pidtxt = "2861\000\177\000\000\001vL\207\375\177\000\000\002\000\000"
        argc = <optimized out>
        crashRecursionCounter = 2
#4  0x00007effc4841240 in <signal handler called> () at /lib64/libc.so.6
#5  0x00007effc64aa3ea in QQmlContextData::contextObject() const (this=<optimized out>, this=<optimized out>) at /usr/src/debug/qtdeclarative-everywhere-src-6.6.3/src/qml/qml/qqmlcontextdata_p.h:128
        contextObject = <optimized out>
#6  QQmlContextData::ContextGuard::objectDestroyedImpl(QQmlGuardImpl*) (impl=0x55f595691878) at /usr/src/debug/qtdeclarative-everywhere-src-6.6.3/src/qml/qml/qqmlcontextdata_p.h:455
        contextObject = <optimized out>
#7  0x00007effc64b6e72 in QQmlData::destroyed(QObject*) (this=0x55f58db318c0, object=0x55f58db318a0) at /usr/src/debug/qtdeclarative-everywhere-src-6.6.3/src/qml/qml/qqmlengine.cpp:1489
        guard = <optimized out>
        binding = <optimized out>
        signalHandler = <optimized out>
#8  0x00007effc51cf702 in QObject::~QObject() (this=0x55f58db318a0, this=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.6.3/src/corelib/kernel/qobject.cpp:1065
        d = 0x55f595663650
        sharedRefcount = 0x55f594164190
        cd = <optimized out>
#9  0x00007effc6c006e5 in QQmlPrivate::QQmlElement<QQuickLoader>::~QQmlElement() (this=0x55f58db318a0, this=<optimized out>) at /usr/src/debug/qtdeclarative-everywhere-src-6.6.3/src/qml/qml/qqmlprivate.h:99
#10 QQmlPrivate::QQmlElement<QQuickLoader>::~QQmlElement() (this=0x55f58db318a0, this=<optimized out>) at /usr/src/debug/qtdeclarative-everywhere-src-6.6.3/src/qml/qml/qqmlprivate.h:99
#11 0x00007effc51caba7 in QObject::event(QEvent*) (this=0x55f58db318a0, e=0x55f594c881d0) at /usr/src/debug/qtbase-everywhere-src-6.6.3/src/corelib/kernel/qobject.cpp:1424
#12 0x00007effc71c1a7e in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x55f58db318a0, e=0x55f594c881d0) at /usr/src/debug/qtbase-everywhere-src-6.6.3/src/widgets/kernel/qapplication.cpp:3296
        consumed = false
        filtered = false
#13 0x00007effc5187998 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x55f58db318a0, event=0x55f594c881d0) at /usr/src/debug/qtbase-everywhere-src-6.6.3/src/corelib/kernel/qcoreapplication.cpp:1121
        selfRequired = true
        result = false
        cbdata = {0x55f58db318a0, 0x55f594c881d0, 0x7ffd874c867f}
        d = <optimized out>
        threadData = 0x55f5857c7680
        scopeLevelCounter = {threadData = 0x55f5857c7680}
#14 0x00007effc51879d9 in QCoreApplication::sendEvent(QObject*, QEvent*) (receiver=<optimized out>, event=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.6.3/src/corelib/kernel/qcoreapplication.cpp:1539
#15 0x00007effc5187cf7 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0x55f5857c7680) at /usr/src/debug/qtbase-everywhere-src-6.6.3/src/corelib/kernel/qcoreapplication.cpp:1901
        e = 0x55f594c881d0
        pe = <optimized out>
        r = <optimized out>
        event_deleter = {d = 0x55f594c881d0}
        locker = {_M_device = 0x55f5857c76d8, _M_owns = false}
        startOffset = 0
        i = @0x55f5857c76c8: 1153
#16 0x00007effc53ab9a3 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0x55f5857f96b0) at /usr/src/debug/qtbase-everywhere-src-6.6.3/src/corelib/kernel/qeventdispatcher_glib.cpp:243
        source = 0x55f5857f96b0
#17 0x00007effc3d44710 in g_main_dispatch (context=0x7effbc000f00) at ../glib/gmain.c:3344
        dispatch = 0x7effc53ab990 <postEventSourceDispatch(GSource*, GSourceFunc, gpointer)>
        prev_source = 0x0
        begin_time_nsec = 0
        was_in_call = 0
        user_data = 0x0
        callback = 0x0
        cb_funcs = 0x0
        cb_data = 0x0
        need_destroy = <optimized out>
        source = 0x55f5857f96b0
        current = 0x55f586082ae0
        i = 0
        __func__ = "g_main_dispatch"
#18 g_main_context_dispatch_unlocked (context=context@entry=0x7effbc000f00) at ../glib/gmain.c:4152
#19 0x00007effc3d46358 in g_main_context_iterate_unlocked (context=context@entry=0x7effbc000f00, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4217
        max_priority = 0
        timeout = 0
        some_ready = 1
        nfds = <optimized out>
        allocated_nfds = 19
        fds = 0x55f589e95f30
#20 0x00007effc3d46a0c in g_main_context_iteration (context=0x7effbc000f00, may_block=1) at ../glib/gmain.c:4282
        retval = <optimized out>
#21 0x00007effc53a8d6c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x55f58580e250, flags=...) at /usr/src/debug/qtbase-everywhere-src-6.6.3/src/corelib/kernel/qeventdispatcher_glib.cpp:393
        d = 0x55f58580b340
        canWait = true
        savedFlags = {i = 0}
        result = <optimized out>
#22 0x00007effc51921ab in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7ffd874c8980, flags=...) at /usr/src/debug/qtbase-everywhere-src-6.6.3/src/corelib/global/qflags.h:34
        d = 0x55f586082a50
        threadData = <optimized out>
        locker = {m_mutex = 0x55f5857ed8c8, m_isLocked = false}
        app = <optimized out>
#23 0x00007effc518bde6 in QCoreApplication::exec() () at /usr/src/debug/qtbase-everywhere-src-6.6.3/src/corelib/global/qflags.h:74
        threadData = 0x55f5857c7680
        eventLoop = {<QObject> = {_vptr.QObject = 0x7effc55f4740 <vtable for QEventLoop+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7effc5436820 <_ZN12_GLOBAL__N_1L39qt_meta_stringdata_CLASSQObjectENDCLASSE.lto_priv.0>, data = 0x7effc54366e0 <_ZL33qt_meta_data_CLASSQObjectENDCLASS.lto_priv.0>, static_metacall = 0x7effc51db0f0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, metaTypes = 0x7effc55f1fe0 <_Z27qt_incomplete_metaTypeArrayIN12_GLOBAL__N_141qt_meta_stringdata_CLASSQObjectENDCLASS_tEJN9QtPrivate20TypeAndForceCompleteI7QStringSt17integral_constantIbLb1EEEENS3_I7QObjectS6_EENS3_IvS5_IbLb0EEEENS3_IPS8_SA_EESB_SB_NS3_IRKS4_SA_EESB_SB_NS3_IPvSA_EESD_EE.lto_priv.0>, extradata = 0x0}}, d_ptr = {d = 0x55f586082a50}}, static staticMetaObject = {d = {superdata = {direct = 0x55f584f377a0 <QObject::staticMetaObject>}, stringdata = 0x7effc5435c20 <_ZN12_GLOBAL__N_1L42qt_meta_stringdata_CLASSQEventLoopENDCLASSE.lto_priv.0>, data = 0x7effc5435b20 <_ZL36qt_meta_data_CLASSQEventLoopENDCLASS.lto_priv.0>, static_metacall = 0x7effc518ded0 <QEventLoop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, metaTypes = 0x7effc55f1c00 <_Z27qt_incomplete_metaTypeArrayIN12_GLOBAL__N_144qt_meta_stringdata_CLASSQEventLoopENDCLASS_tEJN9QtPrivate20TypeAndForceCompleteI6QFlagsIN10QEventLoop17ProcessEventsFlagEESt17integral_constantIbLb1EEEENS3_IS5_S9_EENS3_IvS8_IbLb0EEEENS3_IiSC_EESD_SD_EE.lto_priv.0>, extradata = 0x0}}}
        returnCode = <optimized out>
#24 0x00007effc59e323c in QGuiApplication::exec() () at /usr/src/debug/qtbase-everywhere-src-6.6.3/src/gui/kernel/qguiapplication.cpp:1925
#25 0x00007effc71beeb5 in QApplication::exec() () at /usr/src/debug/qtbase-everywhere-src-6.6.3/src/widgets/kernel/qapplication.cpp:2574
#26 0x000055f584e9a09e in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/plasma-workspace-6.0.3/shell/main.cpp:214
        format = {d = 0x55f5857ed000}
        app = {<QGuiApplication> = {<QCoreApplication> = {<QObject> = {_vptr.QObject = 0x7effc77327a8 <vtable for QApplication+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7effc5436820 <_ZN12_GLOBAL__N_1L39qt_meta_stringdata_CLASSQObjectENDCLASSE.lto_priv.0>, data = 0x7effc54366e0 <_ZL33qt_meta_data_CLASSQObjectENDCLASS.lto_priv.0>, static_metacall = 0x7effc51db0f0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, metaTypes = 0x7effc55f1fe0 <_Z27qt_incomplete_metaTypeArrayIN12_GLOBAL__N_141qt_meta_stringdata_CLASSQObjectENDCLASS_tEJN9QtPrivate20TypeAndForceCompleteI7QStringSt17integral_constantIbLb1EEEENS3_I7QObjectS6_EENS3_IvS5_IbLb0EEEENS3_IPS8_SA_EESB_SB_NS3_IRKS4_SA_EESB_SB_NS3_IPvSA_EESD_EE.lto_priv.0>, extradata = 0x0}}, d_ptr = {d = 0x55f5857c2450}}, static staticMetaObject = {d = {superdata = {direct = 0x55f584f377a0 <QObject::staticMetaObject>}, stringdata = 0x7effc5435f20 <_ZN12_GLOBAL__N_1L48qt_meta_stringdata_CLASSQCoreApplicationENDCLASSE.lto_priv.0>, data = 0x7effc5435d80 <_ZL42qt_meta_data_CLASSQCoreApplicationENDCLASS.lto_priv.0>, static_metacall = 0x7effc51912f0 <QCoreApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, metaTypes = 0x7effc55f1c80 <_Z27qt_incomplete_metaTypeArrayIN12_GLOBAL__N_150qt_meta_stringdata_CLASSQCoreApplicationENDCLASS_tEJN9QtPrivate20TypeAndForceCompleteI7QStringSt17integral_constantIbLb1EEEES7_S7_S7_NS3_IbS6_EENS3_I16QCoreApplicationS6_EENS3_IvS5_IbLb0EEEESC_SC_SC_SC_SC_SC_NS3_IiSB_EESC_EE.lto_priv.0>, extradata = 0x0}}, static self = 0x7ffd874c8a80}, static staticMetaObject = {d = {superdata = {direct = 0x55f584f378e0 <QCoreApplication::staticMetaObject>}, stringdata = 0x7effc5f13f60 <_ZN12_GLOBAL__N_1L47qt_meta_stringdata_CLASSQGuiApplicationENDCLASSE.lto_priv.0>, data = 0x7effc5f13c60 <_ZL41qt_meta_data_CLASSQGuiApplicationENDCLASS.lto_priv.0>, static_metacall = 0x7effc59f2d20 <QGuiApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, metaTypes = 0x7effc6045640 <_Z27qt_incomplete_metaTypeArrayIN12_GLOBAL__N_149qt_meta_stringdata_CLASSQGuiApplicationENDCLASS_tEJN9QtPrivate20TypeAndForceCompleteI5QIconSt17integral_constantIbLb1EEEENS3_I7QStringS6_EES9_NS3_IN2Qt15LayoutDirectionES6_EES9_NS3_IbS6_EENS3_IP7QScreenS6_EENS3_I15QGuiApplicationS6_EENS3_IvS5_IbLb0EEEESK_NS3_ISF_SJ_EESK_SL_SK_SL_SK_SK_NS3_IP7QObjectSJ_EESK_NS3_IP7QWindowSJ_EESK_NS3_INSA_16ApplicationStateESJ_EESK_NS3_ISB_SJ_EESK_NS3_IR15QSessionManagerSJ_EESK_SX_SK_SK_NS3_IRK8QPaletteSJ_EESK_NS3_IRK5QFontSJ_EESK_NS3_IxSJ_EESK_SO_EE.lto_priv.0>, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {direct = 0x55f584f378a0 <QGuiApplication::staticMetaObject>}, stringdata = 0x7effc75f7f60 <_ZN12_GLOBAL__N_1L44qt_meta_stringdata_CLASSQApplicationENDCLASSE.lto_priv.0>, data = 0x7effc75f7dc0 <_ZL38qt_meta_data_CLASSQApplicationENDCLASS.lto_priv.0>, static_metacall = 0x7effc71c4590 <QApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, metaTypes = 0x7effc7732140 <_Z27qt_incomplete_metaTypeArrayIN12_GLOBAL__N_146qt_meta_stringdata_CLASSQApplicationENDCLASS_tEJN9QtPrivate20TypeAndForceCompleteIiSt17integral_constantIbLb1EEEES6_S6_S6_S6_S6_NS3_I7QStringS5_EENS3_IbS5_EENS3_I12QApplicationS5_EENS3_IvS4_IbLb0EEEENS3_IP7QWidgetSC_EESG_SD_NS3_IRKS7_SC_EESD_NS3_IKbSC_EESD_SD_EE.lto_priv.0>, extradata = 0x0}}}
        aboutData = {d = std::unique_ptr<class KAboutDataPrivate> = {get() = 0x55f585dd10d0}}
        replace = <optimized out>
        corona = 0x55f586191460
        service = {<QObject> = {_vptr.QObject = 0x7effc7dfd1c8 <vtable for KDBusService+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7effc5436820 <_ZN12_GLOBAL__N_1L39qt_meta_stringdata_CLASSQObjectENDCLASSE.lto_priv.0>, data = 0x7effc54366e0 <_ZL33qt_meta_data_CLASSQObjectENDCLASS.lto_priv.0>, static_metacall = 0x7effc51db0f0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, metaTypes = 0x7effc55f1fe0 <_Z27qt_incomplete_metaTypeArrayIN12_GLOBAL__N_141qt_meta_stringdata_CLASSQObjectENDCLASS_tEJN9QtPrivate20TypeAndForceCompleteI7QStringSt17integral_constantIbLb1EEEENS3_I7QObjectS6_EENS3_IvS5_IbLb0EEEENS3_IPS8_SA_EESB_SB_NS3_IRKS4_SA_EESB_SB_NS3_IPvSA_EESD_EE.lto_priv.0>, extradata = 0x0}}, d_ptr = {d = 0x55f586141660}}, static staticMetaObject = {d = {superdata = {direct = 0x55f584f377a0 <QObject::staticMetaObject>}, stringdata = 0x7effc7df81a0 <(anonymous namespace)::qt_meta_stringdata_CLASSKDBusServiceENDCLASS>, data = 0x7effc7df7cc0 <qt_meta_data_CLASSKDBusServiceENDCLASS>, static_metacall = 0x7effc7deb1b0 <KDBusService::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, metaTypes = 0x7effc7dfca80 <qt_incomplete_metaTypeArray<(anonymous namespace)::qt_meta_stringdata_CLASSKDBusServiceENDCLASS_t, QtPrivate::TypeAndForceComplete<KDBusService::StartupOption, std::integral_constant<bool, true> >, QtPrivate::TypeAndForceComplete<QFlags<KDBusService::StartupOption>, std::integral_constant<bool, true> >, QtPrivate::TypeAndForceComplete<KDBusService, std::integral_constant<bool, true> >, QtPrivate::TypeAndForceComplete<void, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<QList<QString> const&, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<QString const&, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<void, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<QList<QUrl> const&, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<void, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<QString const&, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<QVariant const&, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<void, std::integral_constant<bool, false> > >>, extradata = 0x0}}, d = std::unique_ptr<class KDBusServicePrivate> = {get() = 0x55f585dd4250}}
Comment 1 Akseli Lahtinen 2024-04-03 13:14:31 UTC
Can't reproduce it on master. 

What I tried was locking my session, sending myself email and waiting for the KMail notification ding, then unlock my session and open the notification panel.

Operating System: Fedora Linux 40
KDE Plasma Version: 6.0.80
KDE Frameworks Version: 6.1.0
Qt Version: 6.6.2
Kernel Version: 6.8.2-300.fc40.x86_64 (64-bit)
Graphics Platform: Wayland
Processors: 12 × AMD Ryzen 5 3600 6-Core Processor
Memory: 15.5 GiB of RAM
Graphics Processor: AMD Radeon RX 6600
Comment 2 Akseli Lahtinen 2024-04-04 07:48:07 UTC
Hm, now I can reproduce this! I have no idea what causes it, but I did not have to lock my screen to make it happen.

Will keep investigating.
Comment 3 Akseli Lahtinen 2024-04-04 08:34:34 UTC
My backtrace

#0  __pthread_kill_implementation
    (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0)
    at pthread_kill.c:44
#1  0x00007f31a14ab1b3 in __pthread_kill_internal (threadid=<optimized out>, signo=6)
    at pthread_kill.c:78
#2  0x00007f31a145365e in __GI_raise (sig=6) at ../sysdeps/posix/raise.c:26
#3  0x00007f31a5887f78 in KCrash::defaultCrashHandler (sig=6)
    at /home/akseli/Repositories/kde/src/kcrash/src/kcrash.cpp:593
#4  0x00007f31a1453710 in <signal handler called> () at /lib64/libc.so.6
#5  __pthread_kill_implementation
    (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0)
    at pthread_kill.c:44
#6  0x00007f31a14ab1b3 in __pthread_kill_internal (threadid=<optimized out>, signo=6)
    at pthread_kill.c:78
#7  0x00007f31a145365e in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#8  0x00007f31a143b902 in __GI_abort () at abort.c:79
#9  0x00007f31a1aca48d in qAbort ()
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/corelib/global/qglobal.cpp:161
#10 0x00007f31a1b1567d in qt_message_fatal<QString&> (context=<optimized out>, message=...)
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/corelib/global/qlogging.cpp:2003
#11 qt_message(QtMsgType, const QMessageLogContext &, const char *, typedef __va_list_tag __va_list_tag *)
    (msgType=msgType@entry=QtFatalMsg, context=..., msg=msg@entry=0x7f31a1e9ad70 "ASSERT: \"%s\" in file %s, line %d", ap=ap@entry=0x7fff0704f910)
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/corelib/global/qlogging.cpp:378
#12 0x00007f31a1acb3f5 in QMessageLogger::fatal
    (this=this@entry=0x7fff0704f9f8, msg=msg@entry=0x7f31a1e9ad70 "ASSERT: \"%s\" in file %s, line %d")
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/corelib/global/qlogging.cpp:901
#13 0x00007f31a1aca3e3 in qt_assert
    (assertion=<optimized out>, file=<optimized out>, line=<optimized out>)
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/corelib/global/qassert.cpp:68
#14 0x000000000048c0aa in ShellCorona::screenInvariants (this=0x2558be0)
    at /home/akseli/Repositories/kde/src/plasma-workspace/shell/shellcorona.cpp:878
#15 0x00000000004c5543 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (ShellCorona::*)() const>::call(void (ShellCorona::*)() const, ShellCorona*, void**)
    (f=(void (ShellCorona::*)(const class ShellCorona * const)) 0x48bc00 <ShellCorona::screenInvariants() const>, o=0x2558be0, arg=0x7fff0704fd60)
    at /usr/include/qt6/QtCore/qobjectdefs_impl.h:153
#16 0x00000000004bdd4a in QtPrivate::FunctionPointer<void (ShellCorona::*)() const>::call<QtPrivate::List<>, void>(void (ShellCorona::*)() const, ShellCorona*, void**)
    (f=(void (ShellCorona::*)(const class ShellCorona * const)) 0x48bc00 <ShellCorona::screenInvariants() const>, o=0x2558be0, arg=0x7fff0704fd60)
    at /usr/include/qt6/QtCore/qobjectdefs_impl.h:194
#17 0x00000000004b6209 in QtPrivate::QCallableObject<void (ShellCorona::*)() const, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*)
    (which=1, this_=0x29d98c0, r=0x2558be0, a=0x7fff0704fd60, ret=0x0)
    at /usr/include/qt6/QtCore/qobjectdefs_impl.h:520
#18 0x00007f31a1bf2684 in QtPrivate::QSlotObjectBase::call
    (this=0x29d98c0, r=<optimized out>, a=0x7fff0704fd60)
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/corelib/kernel/qobjectdefs_impl.h:433
#19 doActivate<false> (sender=0x2558d10, signal_index=3, argv=0x7fff0704fd60)
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/corelib/kernel/qobject.cpp:4039
#20 0x00007f31a1be8fd7 in QMetaObject::activate
    (sender=<optimized out>, m=m@entry=0x7f31a2068ec0, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fff0704fd60)
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/corelib/kernel/qobject.cpp:4099
#21 0x00007f31a1c0178d in QTimer::timeout (this=<optimized out>, _t1=...)
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/redhat-linux-build/src/corelib/Core_autogen/include/moc_qtimer.cpp:272
#22 0x00007f31a1be249f in QObject::event (this=0x2558d10, e=0x7fff0704fef0)
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/corelib/kernel/qobject.cpp:1459
#23 0x00007f31a4787f68 in QApplicationPrivate::notify_helper
    (this=<optimized out>, receiver=0x2558d10, e=0x7fff0704fef0)
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/widgets/kernel/qapplication.cpp:3296
#24 0x00007f31a1b8f218 in QCoreApplication::notifyInternal2
    (receiver=0x2558d10, event=0x7fff0704fef0)
--Type <RET> for more, q to quit, c to continue without paging--c
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/corelib/kernel/qcoreapplication.cpp:1121
#25 0x00007f31a1b8f42d in QCoreApplication::sendEvent
    (receiver=<optimized out>, event=<optimized out>)
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/corelib/kernel/qcoreapplication.cpp:1539
#26 0x00007f31a1d43c46 in QTimerInfoList::activateTimers (this=0x24a1bc0)
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/corelib/kernel/qtimerinfo_unix.cpp:507
#27 0x00007f31a1e66b21 in timerSourceDispatch (source=<optimized out>)
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:149
#28 idleTimerSourceDispatch (source=<optimized out>)
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:196
#29 0x00007f31a0bed68c in g_main_dispatch (context=0x7f3188000f00) at ../glib/gmain.c:3344
#30 g_main_context_dispatch_unlocked (context=0x7f3188000f00) at ../glib/gmain.c:4152
#31 0x00007f31a0c4e788 in g_main_context_iterate_unlocked.isra.0
    (context=context@entry=0x7f3188000f00, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4217
#32 0x00007f31a0beeb03 in g_main_context_iteration (context=0x7f3188000f00, may_block=1)
    at ../glib/gmain.c:4282
#33 0x00007f31a1e66de3 in QEventDispatcherGlib::processEvents (this=0x241ec00, flags=...)
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:393
#34 0x00007f31a1b9c053 in QEventLoop::exec (this=this@entry=0x7fff070501c0, flags=..., 
    flags@entry=...)
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/corelib/global/qflags.h:34
#35 0x00007f31a1b97ffc in QCoreApplication::exec ()
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/corelib/global/qflags.h:74
#36 0x0000000000442190 in main (argc=2, argv=0x7fff07050c58)
    at /home/akseli/Repositories/kde/src/plasma-workspace/shell/main.cpp:188
Comment 4 Nate Graham 2024-09-26 20:21:20 UTC
See Bug 413782 and Bug 456947 which were previous cases of ShellCorona::screenInvariants() causing a crash. Sentry says this instance of it is in the top 15 of all Plasma crashes. Seems like a particularly buggy component.
Comment 5 David Edmundson 2024-10-16 14:34:30 UTC
We believe this is fixed in 6.2, lets close this and track on Sentry
Comment 7 Bug Janitor Service 2024-11-07 12:12:43 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/4900
Comment 8 Marco Martin 2024-11-15 14:58:01 UTC
Git commit 08174d25e0a12f385da4ae11e960eb7d12e3fa0f by Marco Martin.
Committed on 15/11/2024 at 14:57.
Pushed by mart into branch 'master'.

X11/multiscreen: Always emit outputOrderChanged when a screen is disconnected

Don't remove immediately the output from m_outputOrder.
This fixes screen removal both the "normal" case and the case of last screen removed that
causes the last QScreen to become ":0.0" named.

Why the current master was broken:

In X11OutputOrderWatcher when a screen is disconnected it removes
immediately the screen from m_outputOrder, but then on the timecompressed
check in refresh() the outputorderchanged is emitted by comparing with
m_outputOrder which is "new" already, so the signal is not emitted.

This makes plasma not remove the corresponding DesktopView (and panels)
staying with an inconsistent internal state, either failing screenInvariants()
or ending up with wrong desktops and panels on wrong screen if invariants are
disabled

M  +3    -17   libkworkspace/outputorderwatcher.cpp

https://invent.kde.org/plasma/plasma-workspace/-/commit/08174d25e0a12f385da4ae11e960eb7d12e3fa0f
Comment 9 Bug Janitor Service 2024-11-15 15:03:37 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/4917
Comment 10 Marco Martin 2024-11-15 15:35:36 UTC
Git commit eb1896d2df36e7f6945df8d3c615a924a15cb536 by Marco Martin.
Committed on 15/11/2024 at 15:35.
Pushed by mart into branch 'Plasma/6.2'.

X11/multiscreen: Always emit outputOrderChanged when a screen is disconnected

Don't remove immediately the output from m_outputOrder.
This fixes screen removal both the "normal" case and the case of last screen removed that
causes the last QScreen to become ":0.0" named.

Why the current master was broken:

In X11OutputOrderWatcher when a screen is disconnected it removes
immediately the screen from m_outputOrder, but then on the timecompressed
check in refresh() the outputorderchanged is emitted by comparing with
m_outputOrder which is "new" already, so the signal is not emitted.

This makes plasma not remove the corresponding DesktopView (and panels)
staying with an inconsistent internal state, either failing screenInvariants()
or ending up with wrong desktops and panels on wrong screen if invariants are
disabled


(cherry picked from commit 08174d25e0a12f385da4ae11e960eb7d12e3fa0f)

M  +3    -17   libkworkspace/outputorderwatcher.cpp

https://invent.kde.org/plasma/plasma-workspace/-/commit/eb1896d2df36e7f6945df8d3c615a924a15cb536
Comment 11 Nate Graham 2024-11-15 16:26:05 UTC
Please re-open if you're still able to reproduce this crash in Plasma 6.2.4. Thanks a lot folks!