Bug 513012 - Plasmashell freezes with runaway memory leak when closing notification widget via back button after setting it to "Always shown"
Summary: Plasmashell freezes with runaway memory leak when closing notification widget...
Status: CONFIRMED
Alias: None
Product: plasmashell
Classification: Plasma
Component: Notifications (other bugs)
Version First Reported In: 6.5.3
Platform: Arch Linux Linux
: HI major
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-12-06 14:08 UTC by 0BitPixel
Modified: 2025-12-16 00:19 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments
Photo of screen *after* system-freeze/kernel panic. RAM allocation history and plasmashell RAM use are visible. (3.08 MB, image/jpeg)
2025-12-06 14:08 UTC, 0BitPixel
Details

Note You need to log in before you can comment on or make changes to this bug.
Description 0BitPixel 2025-12-06 14:08:59 UTC
Created attachment 187392 [details]
Photo of screen *after* system-freeze/kernel panic. RAM allocation history and plasmashell RAM use are visible.

SUMMARY
Plasmashell freezes with a violent memory runaway when closing the system-tray notification widget before the system tray has been opened

STEPS TO REPRODUCE
1. Log into Plasma *without* notification widget pinned in system tray on panel
2. Right click tray arrow (do not open!)
3. Click "Configure System Tray", go to "Entries"-tab
4. Set "Notifications" element to "Always shown"
5. Click Notification Icon in System Tray on Panel
6. Click Back-Button on top left of Mini Program

OBSERVED RESULT
- Panel, Tray and Widgets freeze
- CPU-Usage skyrockets on one core
- Memory use surges, allocating at around 0.5G/sec
- When Memory (&Swap) is full, system freezes (probably Kernel Panic, but I don't know how to confirm that)

EXPECTED RESULT
Either: Notification Widget closes
Or: Back into general System Tray


SOFTWARE/OS VERSIONS
Operating System: Arch Linux (fully updated)
KDE Plasma Version: 6.5.3
KDE Frameworks Version: 6.20.0
Qt Version: 6.10.1
Kernel Version: 6.17.9-zen1-1-zen (64-bit)
Graphics Platform: Wayland
Processors: 16 × AMD Ryzen 7 5700G with Radeon Graphics
Memory: 32 GiB of RAM (31.1 GiB usable)
Graphics Processor: NVIDIA GeForce GTX 1660 SUPER
Manufacturer: ASUS

ADDITIONAL INFORMATION
- System Tray must not have been opened before.
- Notification Icon must *not* be on Panel on login.
- After plasmashell freeze, Desktop still works. I was able to start KRunner and Kitty+btop to confirm the memory leak.
- Attached image is photo of screen *after* system-freeze/kernel panic. RAM allocation history and plasmashell RAM use are visible.
Comment 1 Nate Graham 2025-12-08 20:53:12 UTC
Can reproduce exactly as described. More condensed steps to reproduce:

1. Ensure the Notifications widget is set to "Shown when relevant", and restart plasmashell for good measure
2. Configure System Tray > set Notifications widget to "Always shown" and click OK
3. Click Notifications widget in System Tray
4. Click Back button in its header


Backtrace of what it's doing when the memory usage skyrockets:

#0  __memset_avx512_unaligned_erms ()
    at ../sysdeps/x86_64/multiarch/memset-vec-unaligned-erms.S:210
#1  0x00007fe6ce9c2afc in memset
    (__dest=<optimized out>, __ch=0, __len=96, __dest=<optimized out>, __ch=<optimized out>, __len=<optimized out>) at /usr/include/bits/string_fortified.h:59
#2  QV4::MemoryManager::allocData (this=0x565408985680, size=96)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/memory/qv4mm.cpp:1012
#3  0x00007fe6ce954761 in QV4::MemoryManager::allocateObject<QV4::QObjectMethod>
    (this=0x565408985680, ic=<optimized out>)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper_p.h:371
#4  QV4::MemoryManager::allocateObject<QV4::QObjectMethod>
    (this=0x565408985680, ic=0x7fe69ea3c700)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/memory/qv4mm_p.h:270
#5  QV4::MemoryManager::allocateObject<QV4::QObjectMethod> (this=0x565408985680)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/memory/qv4mm_p.h:280
#6  QV4::MemoryManager::allocate<QV4::QObjectMethod, QV4::ExecutionEngine*&, QV4::Heap::Object*&, int&> (this=0x565408985680)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/memory/qv4mm_p.h:313
#7  QV4::QObjectMethod::create (engine=0x5654086b4330, wrapper=0x0, index=97)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:2712
#8  0x00007fe6ce9454ef in QV4::QObjectWrapper::getMethodFallback
    (engine=0x5654086b4330, wrapper=0x7fe5dcbd2400, qobject=0x565409fcc320, name=<optimized out>, flags=...)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:400
#9  0x00007fe6ce91acbf in QV4::Lookup::getterFallbackMethod
    (lookup=0x565409fca078, engine=0x5654086b4330, object=...)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper_p.h:124
#10 0x00007fe6ce9dd123 in QQmlPrivate::AOTCompiledContext::initCallObjectPropertyLookup
    (this=0x7ffde92753f0, index=<optimized out>, object=0x565409fcc320, relativeMethodIndex=9)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqml.cpp:2518
#11 0x00007fe69f724855 in ??? ()
    at /usr/lib/qt6/plugins/plasma/applets/org.kde.plasma.notifications.so
#12 0x00007fe6ce9ae791 in operator()
    (argc=<optimized out>, __closure=0x7ffde9275480, argv=0x7ffde9275760)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4vme_moth.cpp:452
#13 QV4::coerceAndCall<(anonymous namespace)::AOTCompiledMetaMethod, QV4::Moth::VME::exec(QV4::MetaTypesStackFrame*, QV4::ExecutionEngine*)::<lambda(void**, int)> >(QV4::ExecutionEngine *, const (anonymous namespace)::AOTCompiledMetaMethod *, void **, const QMetaType *, int, struct {...})
    (engine=engine@entry=0x5654086b4330, typedFunction=typedFunction@entry=0x7ffde92754b8, argv=<optimized out>, types=<optimized out>, argc=<optimized out>, call=...)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4jscall_p.h:560
#14 0x00007fe6ce9b60e6 in QV4::Moth::VME::exec (frame=<optimized out>, engine=0x5654086b4330)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4vme_moth.cpp:437
#15 0x00007fe6ce90372b in QV4::Moth::VME::exec (frame=0x7ffde9275550, engine=<optimized out>)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4vme_moth.cpp:419
#16 QV4::Function::call
    (this=0x565409fcb8c0, thisObject=0x565409fe80c0, a=0x7ffde9275760, types=0x7ffde9275750, argc=0, context=0x7fe65cdb86d0)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4function.cpp:37
#17 0x00007fe6cea5a230 in QQmlJavaScriptExpression::evaluate
    (this=<optimized out>, a=<optimized out>, types=<optimized out>, argc=<optimized out>)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmljavascriptexpression.cpp:270
#18 0x00007fe6ce9f118b in QQmlBoundSignalExpression::evaluate
    (this=<optimized out>, a=a@entry=0x0)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlboundsignal.cpp:200
#19 0x00007fe6ce9f66ad in QQmlBoundSignal_callback (e=0x565409fcd580, a=0x0)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/ftw/qqmlrefcount_p.h:73
#20 QQmlBoundSignal_callback (e=0x565409fcd580, a=0x0)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlboundsignal.cpp:294
#21 0x00007fe6cea83c18 in QQmlNotifier::emitNotify (endpoint=<optimized out>, a=0x0)
--Type <RET> for more, q to quit, c to continue without paging--c
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlnotifier.cpp:74
#22 0x00007fe6cd70bfc2 in doActivate<false> (sender=0x565409fe80c0, signal_index=52, argv=0x0)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4147
#23 0x00007fe69f1c60fd in ??? () at /usr/lib/libnotificationmanager.so.1
#24 0x00007fe6cd70c34f in QtPrivate::QSlotObjectBase::call
    (this=0x56540a055fe0, r=0x565409fe80c0, a=0x7ffde9277318, this=<optimized out>, r=<optimized out>, a=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:461
#25 doActivate<false> (sender=<optimized out>, signal_index=<optimized out>, argv=<optimized out>)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4257
#26 0x00007fe69f1c717a in NotificationManager::Notifications::setLastRead(QDateTime const&) ()
    at /usr/lib/libnotificationmanager.so.1
#27 0x00007fe69f1c71f6 in NotificationManager::Notifications::resetLastRead() ()
    at /usr/lib/libnotificationmanager.so.1
#28 0x00007fe69f1c9fe2 in NotificationManager::Notifications::qt_metacall(QMetaObject::Call, int, void**) () at /usr/lib/libnotificationmanager.so.1
#29 0x00007fe6ce949d2a in QV4::QObjectWrapper::setProperty
    (engine=engine@entry=0x5654086b4330, object=object@entry=0x565409fe80c0, property=0x7fe6989bf1e0, value=...)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:747
#30 0x00007fe6ce94b2a1 in QV4::QObjectWrapper::setQmlProperty
    (engine=engine@entry=0x5654086b4330, qmlContext=..., object=0x565409fe80c0, name=name@entry=0x7fe69ea3c6e0, flags=..., flags@entry=..., value=...)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:580
#31 0x00007fe6ce94b448 in QV4::QObjectWrapper::virtualPut
    (m=0x7fe69ea3c690, id=..., value=..., receiver=0x7fe69ea3c690)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:980
#32 0x00007fe6ce929d73 in QV4::Object::put
    (this=0x7fe69ea3c690, id=..., v=<optimized out>, receiver=0x7fe69ea3c690, this=<optimized out>, id=..., v=<optimized out>, receiver=<optimized out>)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4object_p.h:288
#33 QV4::Object::virtualResolveLookupSetter
    (object=0x7fe69ea3c690, engine=0x5654086b4330, lookup=0x565409fc9600, value=<optimized out>)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4object.cpp:826
#34 0x00007fe6ce9b2e1b in QV4::Moth::VME::interpret (frame=0x7fe51d2ff000, 
    frame@entry=0x7ffde9277cb0, engine=0x5654086b4330, code=0x7fe69f73b116 "/\207")
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4vme_moth.cpp:709
#35 0x00007fe6ce9b6446 in QV4::Moth::VME::exec (frame=<optimized out>, engine=<optimized out>)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4vme_moth.cpp:493
#36 0x00007fe6ce8fd7a0 in QV4::doCall
    (self=<optimized out>, thisObject=<optimized out>, argv=<optimized out>, argc=argc@entry=1, context=<optimized out>)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4function.cpp:53
#37 0x00007fe6ce903269 in QV4::Function::call
    (this=this@entry=0x565409fcae40, thisObject=<optimized out>, argv=argv@entry=0x7fe69ea3c640, argc=argc@entry=1, context=context@entry=0x7fe65cdb8728)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4function.cpp:78
#38 0x00007fe6ce903559 in operator()
    (__closure=<synthetic pointer>, thisObject=<optimized out>, argv=0x7fe69ea3c640, argc=1)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4function.cpp:29
#39 QV4::convertAndCall<QV4::Function::call(QObject*, void**, const QMetaType*, int, QV4::ExecutionContext*)::<lambda(const QV4::Value*, const QV4::Value*, int)> >
    (engine=<optimized out>, thisObject=0x565409fcc320, a=0x7ffde9279ab0, types=0x7ffde9277fa8, argc=1, call=...) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4jscall_p.h:200
#40 QV4::Function::call
    (this=0x565409fcae40, thisObject=0x565409fcc320, a=0x7ffde9279ab0, types=0x7ffde9277fa8, argc=1, context=0x7fe65cdb8728)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4function.cpp:26
#41 0x00007fe6cea5a230 in QQmlJavaScriptExpression::evaluate
    (this=<optimized out>, a=<optimized out>, types=<optimized out>, argc=<optimized out>)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmljavascriptexpression.cpp:270
#42 0x00007fe6ce9f100a in QQmlBoundSignalExpression::evaluate
    (this=<optimized out>, a=a@entry=0x7ffde9279ab0)
    at /usr/include/qt6/QtCore/qvarlengtharray.h:91
#43 0x00007fe6ce9f66ad in QQmlBoundSignal_callback (e=0x565409ff7e50, a=0x7ffde9279ab0)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/ftw/qqmlrefcount_p.h:73
#44 QQmlBoundSignal_callback (e=0x565409ff7e50, a=0x7ffde9279ab0)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlboundsignal.cpp:294
#45 0x00007fe6cea83c18 in QQmlNotifier::emitNotify (endpoint=<optimized out>, a=0x7ffde9279ab0)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlnotifier.cpp:74
#46 0x00007fe6cd70bfc2 in doActivate<false>
    (sender=0x565409fcc320, signal_index=35, argv=0x7ffde9279ab0)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4147
#47 0x00007fe6d0490d2b in PlasmaQuick::AppletQuickItem::expandedChanged(bool) ()
    at /usr/lib/libPlasmaQuick.so.6
#48 0x00007fe6d0498d92 in PlasmaQuick::AppletQuickItem::qt_metacall(QMetaObject::Call, int, void**) () at /usr/lib/libPlasmaQuick.so.6
#49 0x00007fe6d04c819f in PlasmoidItem::qt_metacall(QMetaObject::Call, int, void**) ()
    at /usr/lib/libPlasmaQuick.so.6
#50 0x00007fe6ce9d12a6 in QQmlPropertyData::doMetacall<(QMetaObject::Call)2>
    (this=<optimized out>, object=<optimized out>, idx=<optimized out>, argv=0x7ffde9279b80)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlpropertydata_p.h:395
#51 QQmlPropertyData::writeProperty
    (this=<optimized out>, target=<optimized out>, value=<optimized out>, flags=...)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlpropertydata_p.h:415
#52 0x00007fe6ceaaa2d5 in QQmlPropertyPrivate::write
    (object=0x565409fcc320, property=..., value=..., context=..., flags=...)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlproperty.cpp:1920
#53 0x00007fe6ce94a85f in QV4::QObjectWrapper::setProperty
    (engine=engine@entry=0x5654086b4330, object=object@entry=0x565409fcc320, property=0x7ffde927a020, value=...)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:795
#54 0x00007fe6ce94b2a1 in QV4::QObjectWrapper::setQmlProperty
    (engine=engine@entry=0x5654086b4330, qmlContext=..., object=0x565409fcc320, name=name@entry=0x7fe69ea3c628, flags=..., flags@entry=..., value=...)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:580
#55 0x00007fe6ce94b448 in QV4::QObjectWrapper::virtualPut
    (m=0x7fe69ea3c5d8, id=..., value=..., receiver=0x7fe69ea3c5d8)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:980
#56 0x00007fe6ce929d73 in QV4::Object::put
    (this=0x7fe69ea3c5d8, id=..., v=<optimized out>, receiver=0x7fe69ea3c5d8, this=<optimized out>, id=..., v=<optimized out>, receiver=<optimized out>)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4object_p.h:288
#57 QV4::Object::virtualResolveLookupSetter
    (object=0x7fe69ea3c5d8, engine=0x5654086b4330, lookup=0x5654096b50e8, value=<optimized out>)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4object.cpp:826
#58 0x00007fe6ce9b2e1b in QV4::Moth::VME::interpret (frame=0x7fe51d2ff000, 
    frame@entry=0x7ffde927a6d0, engine=0x5654086b4330, code=0x7fe69fa56c49 "\026\006P\n\026\006<\016tP\003\b0\006\016\002")
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4vme_moth.cpp:709
#59 0x00007fe6ce9b6446 in QV4::Moth::VME::exec (frame=<optimized out>, engine=<optimized out>)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4vme_moth.cpp:493
#60 0x00007fe6ce90b336 in QV4::Moth::VME::exec (frame=0x7ffde927a6d0, engine=0x5654086b4330)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4engine_p.h:825
#61 qfoDoCall
    (fo=<optimized out>, thisObject=<optimized out>, argv=<optimized out>, argc=<optimized out>)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4functionobject.cpp:528
#62 0x00007fe6ce9b290e in QV4::Moth::VME::interpret (frame=0x7fe51d2ff000, 
    frame@entry=0x7ffde927abe0, engine=0x5654086b4330, code=0x7fe69ea3c540 "\240wY\236\346\177")
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4vme_moth.cpp:804
#63 0x00007fe6ce9b6446 in QV4::Moth::VME::exec (frame=<optimized out>, engine=<optimized out>)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4vme_moth.cpp:493
#64 0x00007fe6ce8fd7a0 in QV4::doCall
    (self=<optimized out>, thisObject=<optimized out>, argv=<optimized out>, argc=argc@entry=0, context=<optimized out>)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4function.cpp:53
#65 0x00007fe6ce903269 in QV4::Function::call
    (this=this@entry=0x5654096d78e0, thisObject=<optimized out>, argv=argv@entry=0x7fe69ea3c500, argc=argc@entry=0, context=context@entry=0x7fe684002dc8)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4function.cpp:78
#66 0x00007fe6ce903559 in operator()
    (__closure=<synthetic pointer>, thisObject=<optimized out>, argv=0x7fe69ea3c500, argc=0)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4function.cpp:29
#67 QV4::convertAndCall<QV4::Function::call(QObject*, void**, const QMetaType*, int, QV4::ExecutionContext*)::<lambda(const QV4::Value*, const QV4::Value*, int)> >
    (engine=<optimized out>, thisObject=0x5654096e2a20, a=0x7ffde927aeb0, types=0x7ffde927aea0, argc=0, call=...) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4jscall_p.h:200
#68 QV4::Function::call
    (this=0x5654096d78e0, thisObject=0x5654096e2a20, a=0x7ffde927aeb0, types=0x7ffde927aea0, argc=0, context=0x7fe684002dc8)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4function.cpp:26
#69 0x00007fe6cea5a230 in QQmlJavaScriptExpression::evaluate
    (this=<optimized out>, a=<optimized out>, types=<optimized out>, argc=<optimized out>)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmljavascriptexpression.cpp:270
#70 0x00007fe6ce9f118b in QQmlBoundSignalExpression::evaluate
    (this=<optimized out>, a=a@entry=0x0)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlboundsignal.cpp:200
#71 0x00007fe6ce9f66ad in QQmlBoundSignal_callback (e=0x5654096ceb10, a=0x0)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/ftw/qqmlrefcount_p.h:73
#72 QQmlBoundSignal_callback (e=0x5654096ceb10, a=0x0)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlboundsignal.cpp:294
#73 0x00007fe6cea83c18 in QQmlNotifier::emitNotify (endpoint=<optimized out>, a=0x0)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlnotifier.cpp:74
#74 0x00007fe6cd70bfc2 in doActivate<false> (sender=0x5654096e2a20, signal_index=65, argv=0x0)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4147
#75 0x00007fe6c5db9fd2 in QQuickAbstractButtonPrivate::handleRelease
    (this=this@entry=0x565409324a10, point=..., timestamp=timestamp@entry=117401308)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/quicktemplates/qquickabstractbutton.cpp:194
#76 0x00007fe6c5dd5cd0 in QQuickControl::mouseReleaseEvent
    (this=<optimized out>, event=0x7ffde927d580)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/quicktemplates/qquickcontrol.cpp:2068
#77 0x00007fe6cee674f7 in QQuickItemPrivate::deliverPointerEvent
    (this=<optimized out>, event=0x7ffde927d580)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/quick/items/qquickitem.cpp:5673
#78 0x00007fe6cee70563 in QQuickItem::event (this=0x5654096e2a20, ev=0x7ffde927d580)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/quick/items/qquickitem.cpp:9165
#79 0x00007fe6cf7161c0 in QApplicationPrivate::notify_helper
    (this=<optimized out>, receiver=0x5654096e2a20, e=0x7ffde927d580)
    at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:3305
#80 0x00007fe6cd69f958 in QCoreApplication::notifyInternal2
    (receiver=0x5654096e2a20, event=0x7ffde927d580)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1109
#81 0x00007fe6cd69f99d in QCoreApplication::sendEvent
    (receiver=<optimized out>, event=<optimized out>)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1549
#82 0x00007fe6cf06aa10 in QQuickDeliveryAgentPrivate::deliverMatchingPointsToItem
    (this=this@entry=0x5654096cc260, item=item@entry=0x5654096e2a20, isGrabber=isGrabber@entry=true, pointerEvent=pointerEvent@entry=0x7ffde927d580, handlersOnly=handlersOnly@entry=false)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/quick/util/qquickdeliveryagent.cpp:2482
#83 0x00007fe6cf06b10a in QQuickDeliveryAgentPrivate::deliverUpdatedPoints
    (this=this@entry=0x5654096cc260, event=event@entry=0x7ffde927d580)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/quick/util/qquickdeliveryagent.cpp:2260
#84 0x00007fe6cf06cf36 in QQuickDeliveryAgentPrivate::deliverPointerEvent
    (this=this@entry=0x5654096cc260, event=event@entry=0x7ffde927d580)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/quick/util/qquickdeliveryagent.cpp:2073
#85 0x00007fe6cf06d8d4 in QQuickDeliveryAgentPrivate::handleMouseEvent
    (this=0x5654096cc260, event=0x7ffde927d580)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/quick/util/qquickdeliveryagent.cpp:1807
#86 0x00007fe6cf062a33 in QQuickDeliveryAgent::event (this=<optimized out>, ev=0x7ffde927d580)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/quick/util/qquickdeliveryagent.cpp:824
#87 0x00007fe6cef3679c in QQuickWindow::event (this=<optimized out>, event=<optimized out>)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/quick/items/qquickwindow.cpp:1591
#88 0x00007fe6cf7161c0 in QApplicationPrivate::notify_helper
    (this=<optimized out>, receiver=0x5654096cb6a0, e=0x7ffde927d580)
    at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:3305
#89 0x00007fe6cd69f958 in QCoreApplication::notifyInternal2
    (receiver=0x5654096cb6a0, event=0x7ffde927d580)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1109
#90 0x00007fe6cd69f9ad in QCoreApplication::sendSpontaneousEvent
    (receiver=<optimized out>, event=<optimized out>)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1563
#91 0x00007fe6cddd4218 in QGuiApplicationPrivate::processMouseEvent (e=0x7fe6b8005a40)
    at /usr/src/debug/qt6-base/qtbase/src/gui/kernel/qguiapplication.cpp:2470
#92 0x00007fe6cde58a2c in QWindowSystemInterface::sendWindowSystemEvents (flags=..., 
    flags@entry=...)
    at /usr/src/debug/qt6-base/qtbase/src/gui/kernel/qwindowsysteminterface.cpp:1117
#93 0x00007fe6cde58c08 in QWindowSystemInterface::flushWindowSystemEvents (flags=...)
    at /usr/src/debug/qt6-base/qtbase/src/gui/kernel/qwindowsysteminterface.cpp:1086
#94 0x00007fe6cd6f9994 in QObject::event (this=<optimized out>, e=<optimized out>)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:1413
#95 0x00007fe6cf7161c0 in QApplicationPrivate::notify_helper
    (this=<optimized out>, receiver=0x5654080be5e0, e=0x7fe6b8002030)
    at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:3305
#96 0x00007fe6cd69f958 in QCoreApplication::notifyInternal2
    (receiver=0x5654080be5e0, event=event@entry=0x7fe6b8002030)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1109
#97 0x00007fe6cd69fd30 in QCoreApplication::sendEvent
    (receiver=<optimized out>, event=0x7fe6b8002030)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1549
#98 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x56540808c120)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1904
#99 0x00007fe6cd97fe18 in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1757
#100 postEventSourceDispatch (s=0x56540809a970)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:246
#101 0x00007fe6cc2aef8d in g_main_dispatch (context=0x7fe6c0000f60) at ../glib/glib/gmain.c:3565
#102 0x00007fe6cc2b0657 in g_main_context_dispatch_unlocked (context=0x7fe6c0000f60)
    at ../glib/glib/gmain.c:4425
#103 g_main_context_iterate_unlocked
    (context=context@entry=0x7fe6c0000f60, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4490
#104 0x00007fe6cc2b0865 in g_main_context_iteration (context=0x7fe6c0000f60, may_block=1)
    at ../glib/glib/gmain.c:4556
#105 0x00007fe6cd97d152 in QEventDispatcherGlib::processEvents (this=0x56540809a880, flags=...)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:399
#106 0x00007fe6cd6aa786 in QEventLoop::processEvents (this=0x7ffde927dcc0, flags=...)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:104
#107 QEventLoop::exec (this=0x7ffde927dcc0, flags=...)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:186
#108 0x00007fe6cd6a43f1 in QCoreApplication::exec ()
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1452
#109 0x0000565401567049 in ??? ()
#110 0x00007fe6ccfa6635 in __libc_start_call_main
    (main=main@entry=0x565401563f30, argc=argc@entry=2, argv=argv@entry=0x7ffde927e3a8)
    at ../sysdeps/nptl/libc_start_call_main.h:58
#111 0x00007fe6ccfa66e9 in __libc_start_main_impl
    (main=0x565401563f30, argc=2, argv=0x7ffde927e3a8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffde927e398) at ../csu/libc-start.c:360
#112 0x0000565401567605 in ??? ()
Comment 2 Oliver Beard 2025-12-16 00:19:20 UTC
#26 0x00007fe69f1c717a in NotificationManager::Notifications::setLastRead(QDateTime const&) ()
    at /usr/lib/libnotificationmanager.so.1
#27 0x00007fe69f1c71f6 in NotificationManager::Notifications::resetLastRead() ()
    at /usr/lib/libnotificationmanager.so.1

seems significant to me, and a good way to start looking into this. I can reproduce, and on my second reproduction within GDB saw it crash originating through here.