Bug 484842 - Icons-Only Task Manager Goes From Partially Broken to Crashing Plasma
Summary: Icons-Only Task Manager Goes From Partially Broken to Crashing Plasma
Status: RESOLVED WORKSFORME
Alias: None
Product: plasmashell
Classification: Plasma
Component: Task Manager and Icons-Only Task Manager widgets (other bugs)
Version First Reported In: 6.1.0
Platform: Neon Linux
: NOR crash
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-03-31 21:47 UTC by morrismyles004
Modified: 2024-06-20 09:15 UTC (History)
3 users (show)

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


Attachments
GDB Backtrace (25.77 KB, text/plain)
2024-03-31 21:47 UTC, morrismyles004
Details
Crash Demonstration (2.92 MB, video/mp4)
2024-03-31 21:51 UTC, morrismyles004
Details

Note You need to log in before you can comment on or make changes to this bug.
Description morrismyles004 2024-03-31 21:47:33 UTC
Created attachment 168003 [details]
GDB Backtrace

***
If you're not sure this is actually a bug, instead post about it at https://discuss.kde.org

If you're reporting a crash, attach a backtrace with debug symbols; see https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports
***

SUMMARY
What originally started as an isolated continuation of a bug from back in 5.27.9 has escalated to a repeatable crash on 6.0.3 on my end. Essentially, after updating or restarting the desktop, adding a floating Icons-Only Task Manager (theoretically possible on the normal Task Manager as well) or interacting with it causes the shell to crash and restart before eventually crashing to the point that it can't recover.

STEPS TO REPRODUCE
1.  Restart Plasma using "killall plasmashell | kstart plasmashell" in Konsole or another terminal emulator.
2.  When the desktop has loaded, right click on the desktop and choose "Add Widgets."
3.  Find the Icons-Only Task Manager or Task Manager and add it to the desktop.
4.  The shell will crash, but recover soon after (if it hasn't jumped right to unrecoverable status).
5.  Continue interacting with either Task Manager by opening applications each one until they cause another crash.
6.  Eventually, "plasmashell" can no longer recover from the crash and present a black screen with nothing but currently running applications.

OBSERVED RESULT

Several observable results:
*  The Task Manager fails to report running applications. This is similar to Bug 475896 but goes much farther.
*  Right-clicking on applications no longer shows menu options.
*  The desktop crashes simply by adding the Task Manager to the desktop.
*  The desktop crashes simply by opening applications from the Task Manager and subsequently closing them.

EXPECTED RESULT

*  The Task Manager should report running applications and show jump lists after right-clicking them.
*  Adding another Task Manager or interacting with either one should not cause Plasma to crash.

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: 6.5.0-26-generic (64-bit)
(available in About System)
KDE Plasma Version: 6.0.3
KDE Frameworks Version: 
Qt Version: 6.6.2
Graphics Platform: Wayland

ADDITIONAL INFORMATION
Comment 1 morrismyles004 2024-03-31 21:51:19 UTC
Created attachment 168005 [details]
Crash Demonstration

This is an OBS recording of the crash in action.
Comment 2 Marco Martin 2024-04-02 14:34:07 UTC
pasting inline. in the backtrace there is some suspect stuff about screencasting/pipewire (taskbar thumbnails)

Thread 1 "plasmashell" received signal SIGABRT, Aborted.
__pthread_kill_implementation (no_tid=0, signo=6, threadid=140737230232256) at ./nptl/pthread_kill.c:44
Download failed: Invalid argument.  Continuing without source file ./nptl/./nptl/pthread_kill.c.
44	./nptl/pthread_kill.c: No such file or directory.
#0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=140737230232256) at ./nptl/pthread_kill.c:44
#1  __pthread_kill_internal (signo=6, threadid=140737230232256) at ./nptl/pthread_kill.c:78
#2  __GI___pthread_kill (threadid=140737230232256, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
#3  0x00007ffff4a42476 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#4  0x00007ffff4a287f3 in __GI_abort () at ./stdlib/abort.c:79
#5  0x00007ffff56db597 in qAbort() () at ./src/corelib/global/qglobal.cpp:161
#6  0x00007ffff56d67f5 in qt_message_fatal<QString&> (message=..., context=<optimized out>)
    at ./src/corelib/global/qlogging.cpp:2003
#7  qt_message(QtMsgType, const QMessageLogContext &, const char *, typedef __va_list_tag __va_list_tag *)
    (msgType=msgType@entry=QtFatalMsg, context=<optimized out>, msg=<optimized out>, ap=ap@entry=0x7fffffff6f90)
    at ./src/corelib/global/qlogging.cpp:378
#8  0x00007ffff56dbfc3 in QMessageLogger::fatal(char const*, ...) const (this=<optimized out>, msg=<optimized out>)
    at ./src/corelib/global/qlogging.cpp:901
#9  0x00007ffff56a0327 in qt_assert(char const*, char const*, int)
    (assertion=assertion@entry=0x7fff93f14267 "isInitialized()", file=file@entry=0x7fff93f14150 "./libtaskmanager/declarative/screencasting.cpp", line=line@entry=75) at ./src/corelib/global/qassert.cpp:68
#10 0x00007fff93f0bc26 in ScreencastingPrivate::ScreencastingPrivate(Screencasting*)
     (this=0x5555592f3060, q=0x555558ac7380) at ./libtaskmanager/declarative/screencasting.cpp:66
#11 ScreencastingPrivate::ScreencastingPrivate(Screencasting*) (q=0x555558ac7380, this=0x5555592f3060)
    at ./libtaskmanager/declarative/screencasting.cpp:66
#12 Screencasting::Screencasting(QObject*) (this=this@entry=0x555558ac7380, parent=parent@entry=0x555559281770)
    at ./libtaskmanager/declarative/screencasting.cpp:90
#13 0x00007fff93f121da in ScreencastingRequest::setUuid(QString const&) (this=0x555559281770, uuid=...)
    at ./libtaskmanager/declarative/screencastingrequest.cpp:48
#14 0x00007ffff642ae98 in QQmlPropertyData::writeProperty(QObject*, void*, QFlags<QQmlPropertyData::WriteFlag>) const
    (this=<optimized out>, target=<optimized out>, value=<optimized out>, flags=...)
    at ./src/qml/qml/qqmlpropertydata_p.h:338
#15 0x00007ffff6455810 in tryConvertAndAssign
    (isUrl=false, variantMetaType=..., propertyMetaType=..., flags=..., value=..., property=..., object=0x555559281770) at ./src/qml/qml/qqmlproperty.cpp:1442
#16 QQmlPropertyPrivate::write(QObject*, QQmlPropertyData const&, QVariant const&, QQmlRefPointer<QQmlContextData> const&, QFlags<QQmlPropertyData::WriteFlag>) (object=0x555559281770, property=..., value=..., context=<optimized out>, flags=...) at ./src/qml/qml/qqmlproperty.cpp:1555
#17 0x00007ffff64c8700 in QQmlBinding::slowWrite(QQmlPropertyData const&, QQmlPropertyData const&, QV4::Value const&, bool, QFlags<QQmlPropertyData::WriteFlag>) (this=<optimized out>, core=..., valueTypeData=..., result=..., isUndefined=<optimized out>, flags=...) at ./src/qml/qml/qqmlbinding.cpp:540
#18 0x00007ffff651e5c2 in GenericBinding<10>::write(QV4::Value const&, bool, QFlags<QQmlPropertyData::WriteFlag>) (this=0x5555596eefb0, result=..., isUndefined=<optimized out>, flags=...) at ./src/qml/qml/qqmlbinding.cpp:268
#19 0x00007ffff64c9972 in QQmlBinding::doUpdate(QQmlJavaScriptExpression::DeleteWatcher const&, QFlags<QQmlPropertyData::WriteFlag>, QV4::Scope&) (this=0x5555596eefb0, watcher=..., flags=..., scope=<optimized out>) at ./src/qml/qml/qqmlbinding.cpp:700
#20 0x00007ffff64c7101 in QQmlBinding::update(QFlags<QQmlPropertyData::WriteFlag>) (this=0x5555596eefb0, flags=...) at ./src/qml/qml/qqmlbinding.cpp:164
#21 0x00007ffff6447ce3 in QQmlObjectCreator::finalize(QQmlInstantiationInterrupt&) (this=0x555559cabd90, interrupt=...) at ./src/qml/qml/qqmlobjectcreator.cpp:1462
#22 0x00007ffff64f8c67 in QQmlIncubatorPrivate::incubate(QQmlInstantiationInterrupt&) (this=this@entry=0x555559282a00, i=...) at /usr/include/x86_64-linux-gnu/qt6/QtCore/qscopedpointer.h:90
#23 0x00007ffff64f9854 in QQmlEnginePrivate::incubate(QQmlIncubator&, QQmlRefPointer<QQmlContextData> const&) (this=0x555555e47b10, i=<optimized out>, forContext=<optimized out>) at ./src/qml/qml/qqmlincubator.cpp:53
#24 0x00007ffff64d1f4e in QQmlComponent::create(QQmlIncubator&, QQmlContext*, QQmlContext*) (this=<optimized out>, incubator=..., context=<optimized out>, forContext=<optimized out>) at ./src/qml/qml/qqmlcomponent.cpp:1437
#25 0x00007ffff6d7dfd0 in QQuickLoaderPrivate::_q_sourceLoaded() (this=0x5555570ecad0) at ./src/quick/items/qquickloader.cpp:741
#26 0x00007ffff6448277 in QQmlObjectCreator::finalize(QQmlInstantiationInterrupt&) (this=0x555558777d50, interrupt=...) at ./src/qml/qml/qqmlobjectcreator.cpp:1521
#27 0x00007ffff64f8c67 in QQmlIncubatorPrivate::incubate(QQmlInstantiationInterrupt&) (this=this@entry=0x555558faf2a0, i=...) at /usr/include/x86_64-linux-gnu/qt6/QtCore/qscopedpointer.h:90
#28 0x00007ffff64f9854 in QQmlEnginePrivate::incubate(QQmlIncubator&, QQmlRefPointer<QQmlContextData> const&) (this=0x555555e47b10, i=<optimized out>, forContext=<optimized out>) at ./src/qml/qml/qqmlincubator.cpp:53
#29 0x00007ffff64d1f4e in QQmlComponent::create(QQmlIncubator&, QQmlContext*, QQmlContext*) (this=<optimized out>, incubator=..., context=<optimized out>, forContext=<optimized out>) at ./src/qml/qml/qqmlcomponent.cpp:1437
#30 0x00007ffff6d7dfd0 in QQuickLoaderPrivate::_q_sourceLoaded() (this=0x55555a51b160) at ./src/quick/items/qquickloader.cpp:741
#31 0x00007ffff6d8359d in QQuickLoader::setActive(bool) (this=0x555558d0f9f0, newVal=<optimized out>) at ./src/quick/items/qquickloader.cpp:315
#32 0x00007ffff642ae98 in QQmlPropertyData::writeProperty(QObject*, void*, QFlags<QQmlPropertyData::WriteFlag>) const (this=<optimized out>, target=<optimized out>, value=<optimized out>, flags=...) at ./src/qml/qml/qqmlpropertydata_p.h:338
#33 0x00007ffff651e2ee in GenericBinding<1>::doStore<bool>(bool, QQmlPropertyData const*, QFlags<QQmlPropertyData::WriteFlag>) const (flags=..., pd=<optimized out>, value=<optimized out>, this=<optimized out>) at ./src/qml/qml/qqmlbinding.cpp:275
#34 GenericBinding<1>::write(QV4::Value const&, bool, QFlags<QQmlPropertyData::WriteFlag>) (this=0x555557f7b640, result=..., isUndefined=<optimized out>, flags=...) at ./src/qml/qml/qqmlbinding.cpp:238
#35 0x00007ffff64c9972 in QQmlBinding::doUpdate(QQmlJavaScriptExpression::DeleteWatcher const&, QFlags<QQmlPropertyData::WriteFlag>, QV4::Scope&) (this=0x555557f7b640, watcher=..., flags=..., scope=<optimized out>) at ./src/qml/qml/qqmlbinding.cpp:700
#36 0x00007ffff64c7101 in QQmlBinding::update(QFlags<QQmlPropertyData::WriteFlag>) (this=0x555557f7b640, flags=...) at ./src/qml/qml/qqmlbinding.cpp:164
#37 0x00007ffff6435438 in QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) (endpoint=<optimized out>, a=0x0) at ./src/qml/qml/qqmlnotifier.cpp:70
#38 0x00007ffff563c1a5 in doActivate<false>(QObject*, int, void**) (sender=0x555558d0f9f0, signal_index=41, argv=0x0) at ./src/corelib/kernel/qobject.cpp:3931
#39 0x00007ffff6534a87 in QV4::QObjectWrapper::setProperty(QV4::ExecutionEngine*, QObject*, QQmlPropertyData const*, QV4::Value const&) (engine=engine@entry=0x555555f4c430, object=object@entry=0x555558d0f9f0, property=0x7fff9c001550, value=...) at ./src/qml/qml/qqmlpropertydata_p.h:246
#40 0x00007ffff6535a0e in QV4::QObjectWrapper::setQmlProperty(QV4::ExecutionEngine*, QQmlRefPointer<QQmlContextData> const&, QObject*, QV4::String*, QFlags<QV4::QObjectWrapper::Flag>, QV4::Value const&) (engine=engine@entry=0x555555f4c430, qmlContext=..., object=0x555558d0f9f0, name=name@entry=0x7fffd03b8628, flags=..., flags@entry=..., value=...) at ./src/qml/jsruntime/qv4qobjectwrapper.cpp:465
#41 0x00007ffff6535baf in QV4::QObjectWrapper::virtualPut(QV4::Managed*, QV4::PropertyKey, QV4::Value const&, QV4::Value*) (m=0x7fffd03b8618, id=..., value=..., receiver=0x7fffd03b8618) at ./src/qml/jsruntime/qv4qobjectwrapper.cpp:837
#42 0x00007ffff6523436 in QV4::Object::put(QV4::StringOrSymbol*, QV4::Value const&, QV4::Value*) (receiver=0x7fffd03b8618, v=..., name=0x7fffd03b8620, this=<optimized out>) at ./src/qml/jsruntime/qv4object_p.h:281
#43 QV4::Lookup::setterFallback(QV4::Lookup*, QV4::ExecutionEngine*, QV4::Value&, QV4::Value const&) (l=<optimized out>, engine=0x555555f4c430, object=<optimized out>, value=...) at ./src/qml/jsruntime/qv4lookup.cpp:591
#44 0x00007ffff668c19a in QV4::Moth::VME::interpret(QV4::JSTypesStackFrame*, QV4::ExecutionEngine*, char const*) (frame=0x7fffffffa1a0, engine=0x555555f4c430, code=0x7fff9290f8ed <incomplete sequence \357>) at ./src/qml/jsruntime/qv4vme_moth.cpp:321
#45 0x00007ffff669005a in QV4::Moth::VME::exec(QV4::JSTypesStackFrame*, QV4::ExecutionEngine*) (frame=<optimized out>, engine=<optimized out>) at ./src/qml/jsruntime/qv4vme_moth.cpp:584
#46 0x00007ffff65c2992 in QV4::Moth::VME::exec(QV4::JSTypesStackFrame*, QV4::ExecutionEngine*) (engine=0x555555f4c430, frame=0x7fffffffa1a0) at ./src/qml/jsruntime/qv4engine_p.h:805
#47 qfoDoCall(QV4::FunctionObject const*, QV4::Value const*, QV4::Value const*, int) (fo=<optimized out>, thisObject=<optimized out>, argv=<optimized out>, argc=<optimized out>) at ./src/qml/jsruntime/qv4functionobject.cpp:526
#48 0x00007ffff668b6de in QV4::Moth::VME::interpret(QV4::JSTypesStackFrame*, QV4::ExecutionEngine*, char const*) (frame=0x7fffffffa650, engine=0x555555f4c430, code=0x555556827890 "\300\066R\366\377\177") at ./src/qml/jsruntime/qv4vme_moth.cpp:902
#49 0x00007ffff669005a in QV4::Moth::VME::exec(QV4::JSTypesStackFrame*, QV4::ExecutionEngine*) (frame=<optimized out>, engine=<optimized out>) at ./src/qml/jsruntime/qv4vme_moth.cpp:584
#50 0x00007ffff65be0e2 in QV4::doCall(QV4::Function*, QV4::Value const*, QV4::Value const*, int, QV4::ExecutionContext*) (self=<optimized out>, thisObject=<optimized out>, argv=<optimized out>, argc=<optimized out>, context=<optimized out>) at ./src/qml/jsruntime/qv4function.cpp:54
#51 0x00007ffff65be1a1 in QV4::Function::call(QV4::Value const*, QV4::Value const*, int, QV4::ExecutionContext*) (this=this@entry=0x5555567eed40, thisObject=<optimized out>, argv=argv@entry=0x7fffd03b84f0, argc=argc@entry=0, context=context@entry=0x7fff4c796d08) at ./src/qml/jsruntime/qv4function.cpp:79
#52 0x00007ffff65c5745 in operator() (argc=0, argv=0x7fffd03b84f0, thisObject=<optimized out>, __closure=<synthetic pointer>) at ./src/qml/jsruntime/qv4function.cpp:30
#53 QV4::convertAndCall<QV4::Function::call(QObject*, void**, const QMetaType*, int, QV4::ExecutionContext*)::<lambda(const QV4::Value*, const QV4::Value*, int)> > (call=..., argc=0, types=0x7fffffffa890, a=0x7fffffffa8a0, thisObject=<optimized out>, engine=<optimized out>) at ./src/qml/jsruntime/qv4jscall_p.h:173
#54 QV4::Function::call(QObject*, void**, QMetaType const*, int, QV4::ExecutionContext*) (this=0x5555567eed40, thisObject=<optimized out>, a=0x7fffffffa8a0, types=0x7fffffffa890, argc=0, context=0x7fff4c796d08) at ./src/qml/jsruntime/qv4function.cpp:27
#55 0x00007ffff65014b9 in QQmlJavaScriptExpression::evaluate(void**, QMetaType const*, int) (this=<optimized out>, a=<optimized out>, types=<optimized out>, argc=<optimized out>) at ./src/qml/qml/qqmljavascriptexpression.cpp:270
#56 0x00007ffff64c59bb in QQmlBoundSignalExpression::evaluate(void**) (this=this@entry=0x555559c396a0, a=a@entry=0x0) at ./src/qml/qml/qqmlboundsignal.cpp:199
#57 0x00007ffff64c936b in QQmlBoundSignal_callback(QQmlNotifierEndpoint*, void**) (a=0x0, e=0x555558609c80) at ./src/qml/qml/ftw/qqmlrefcount_p.h:72
#58 QQmlBoundSignal_callback(QQmlNotifierEndpoint*, void**) (e=0x555558609c80, a=0x0) at ./src/qml/qml/qqmlboundsignal.cpp:293
#59 0x00007ffff6435438 in QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) (endpoint=<optimized out>, a=0x0) at ./src/qml/qml/qqmlnotifier.cpp:70
#60 0x00007ffff563c1a5 in doActivate<false>(QObject*, int, void**) (sender=0x555558650650, signal_index=38, argv=0x0) at ./src/corelib/kernel/qobject.cpp:3931
#61 0x00007fffd805af3a in  () at /usr/lib/x86_64-linux-gnu/qt6/qml/org/kde/plasma/core/libcorebindingsplugin.so
#62 0x00007ffff6d6d4c4 in QQuickItem::event(QEvent*) (this=0x555558650650, ev=0x7fffffffc530) at ./src/quick/items/qquickitem.cpp:8867
#63 0x00007ffff75f181b in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x555558650650, e=0x7fffffffc530) at ./src/widgets/kernel/qapplication.cpp:3296
#64 0x00007ffff5675e08 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=receiver@entry=0x555558650650, event=event@entry=0x7fffffffc530) at ./src/corelib/kernel/qcoreapplication.cpp:1121
#65 0x00007ffff5675e4d in QCoreApplication::sendEvent(QObject*, QEvent*) (receiver=receiver@entry=0x555558650650, event=event@entry=0x7fffffffc530) at ./src/corelib/kernel/qcoreapplication.cpp:1539
#66 0x00007ffff6c3d9b3 in QQuickDeliveryAgentPrivate::sendHoverEvent(QEvent::Type, QQuickItem*, QPointF const&, QPointF const&, QFlags<Qt::KeyboardModifier>, unsigned long) (this=this@entry=0x5555562e1870, type=<optimized out>, item=0x555558650650, scenePos=<optimized out>, lastScenePos=..., modifiers=..., timestamp=4514807) at ./src/quick/util/qquickdeliveryagent.cpp:975
#67 0x00007ffff6c3e050 in QQuickDeliveryAgentPrivate::deliverHoverEventToItem(QQuickItem*, QPointF const&, QPointF const&, QFlags<Qt::KeyboardModifier>, unsigned long, bool) (this=this@entry=0x5555562e1870, item=item@entry=0x555558650650, scenePos=..., lastScenePos=..., modifiers=..., modifiers@entry=..., timestamp=timestamp@entry=4514807, clearHover=false) at ./src/quick/util/qquickdeliveryagent.cpp:1156
Comment 3 Akseli Lahtinen 2024-06-19 09:34:28 UTC
I can't reproduce this on Plasma 6.1

Operating System: Fedora Linux 40
KDE Plasma Version: 6.1.80
KDE Frameworks Version: 6.4.0
Qt Version: 6.7.1
Kernel Version: 6.9.4-200.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 4 morrismyles004 2024-06-19 23:43:17 UTC
Update: I can't reproduce it anymore either (also updated to Plasma 6.1). The developers introduced a new Edit Mode for this release and, in the process, fixed the bug. It would be okay to close this as "RESOLVED" since the only issue that remains is the desktop's inconsistency to render the running applications properly (Bug 475896). It would be appreciated if future findings could be reported there and I appreciate your help anyway.
Comment 5 morrismyles004 2024-06-19 23:46:50 UTC
(In reply to morrismyles004 from comment #4)
> Update: I can't reproduce it anymore either (also updated to Plasma 6.1).
> The developers introduced a new Edit Mode for this release and, in the
> process, fixed the bug. It would be okay to close this as "RESOLVED" since
> the only issue that remains is the desktop's inconsistency to render the
> running applications properly (Bug 475896). It would be appreciated if
> future findings could be reported there and I appreciate your help anyway.

Linux/KDE Plasma: 6.5.0-41-generic (64-bit)
(available in About System)
KDE Plasma Version: 6.1.0
KDE Frameworks Version: 6.3.0
Qt Version: 6.7.0
Graphics Platform: Wayland
Comment 6 Akseli Lahtinen 2024-06-20 09:15:57 UTC
Closing as per user request. Thanks for the report!