Bug 463711 - Plasma becomes unresponsive/hangs at random
Summary: Plasma becomes unresponsive/hangs at random
Status: NEEDSINFO WAITINGFORINFO
Alias: None
Product: plasmashell
Classification: Plasma
Component: generic-performance (show other bugs)
Version: 5.26.4
Platform: Gentoo Packages Linux
: NOR normal
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords: wayland-only
Depends on:
Blocks:
 
Reported: 2023-01-02 03:00 UTC by kyouinotame
Modified: 2025-03-12 03:47 UTC (History)
4 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description kyouinotame 2023-01-02 03:00:32 UTC
SUMMARY
When running Plasma on Wayland, at times the panel and other widgets will become unresponsive. For example, the menu will not open when the icon is clicked, tray widgets won't expand, Runner won't appear when keyboard shortcut is pressed.


STEPS TO REPRODUCE
1. Repeatedly click any tray widget that expands into a menu
2. Eventually the menu will stop appearing

OBSERVED RESULT
See above.

EXPECTED RESULT
For the panel, widgets and runner to remain responsive and display their menus when clicked.

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: Gentoo, kernel ver. 6.1.2-gentoo
(available in About System)
KDE Plasma Version: 5.26.4
KDE Frameworks Version:  5.99.0
Qt Version: 5.15.7

ADDITIONAL INFORMATION
Using QT_QPA_PLATFORMTHEME=qt5ct
Nvidia GPU
Restarting plasma shell remporarily fixes the issue
Comment 1 Andreas Sturmlechner 2023-01-02 15:13:08 UTC
Don't use qt5ct.
Comment 2 kyouinotame 2023-01-02 19:46:55 UTC
What should QT_QPA_PLATFORMTHEME be set to for plasma wayland, then?
Comment 3 Andreas Sturmlechner 2023-01-02 20:19:26 UTC
Just leave it alone.
Comment 4 kyouinotame 2023-01-03 07:53:22 UTC
Alright, I'll try that and report back if it happens again.
Comment 5 kyouinotame 2023-01-03 07:57:29 UTC
OK, removed that environmental variable and rebooted. Issue still occurs.

Weirdly, I believe I had a session yesterday that didn't have this issue. But I don't believe I did anything differently.
Comment 6 Nate Graham 2023-01-09 18:52:12 UTC
Possibly Bug 414785. Do you notice it starting to happen when a notification appears?

Could also be Bug 449163, which was fixed with a Qt change.
Comment 7 kyouinotame 2023-01-14 02:20:24 UTC
I generally have notifications off so I don't think that's related. As for the second bug, I'm on qtwayland version 5.15.7
Comment 8 Nate Graham 2023-01-17 17:20:15 UTC
I've just started experiencing this myself, I believe. I'm pasting gdb backtrace of what Plasma was doing when it happened:

#0  __GI___libc_read (nbytes=16384, buf=0x708cfa8, fd=0) at ../sysdeps/unix/sysv/linux/read.c:26
#1  __GI___libc_read (fd=fd@entry=0, buf=buf@entry=0x708cfa8, nbytes=nbytes@entry=16384)
    at ../sysdeps/unix/sysv/linux/read.c:24
#2  0x00007f3f83c2144d in read (__nbytes=16384, __buf=0x708cfa8, __fd=<optimized out>)
    at /usr/include/bits/unistd.h:38
#3  qt_safe_read (maxlen=16384, data=0x708cfa8, fd=<optimized out>)
    at ../../include/QtCore/5.15.7/QtCore/private/../../../../../src/corelib/kernel/qcore_unix_p.h:283
#4  QFSFileEnginePrivate::readFdFh(char*, long long)
    (this=0x77913d0, data=0x708cfa8 " E\202\a", len=16384) at io/qfsfileengine.cpp:684
#5  0x00007f3f83bf184e in QFileDevice::readData(char*, long long)
     (this=this@entry=0x7ffc08c73fc0, data=0x708cfa8 " E\202\a", len=len@entry=16384) at io/qfiledevice.cpp:461
#6  0x00007f3f83bf8b95 in QIODevicePrivate::read(char*, long long, bool)
    (this=0x48d2d70, data=data@entry=0x7ffc08c73d87 "", maxSize=maxSize@entry=1, peeking=peeking@entry=false) at io/qiodevice.cpp:1129
#7  0x00007f3f83bf9010 in QIODevice::read(char*, long long)
    (this=this@entry=0x7ffc08c73fc0, data=data@entry=0x7ffc08c73d87 "", maxSize=maxSize@entry=1)
    at io/qiodevice.cpp:1053
#8  0x00007f3f83bf9168 in QIODevice::readLineData(char*, long long)
    (this=this@entry=0x7ffc08c73fc0, data=data@entry=0x7d5d368 "", maxSize=maxSize@entry=16384)
    at io/qiodevice.cpp:1518
#9  0x00007f3f83bf25be in QFileDevice::readLineData(char*, long long)
    (this=0x7ffc08c73fc0, data=0x7d5d368 "", maxlen=16384) at io/qfiledevice.cpp:438
#10 0x00007f3f83bf9851 in QIODevice::readLine(char*, long long)
    (this=this@entry=0x7ffc08c73fc0, data=0x7d5d368 "", maxSize=16384, maxSize@entry=16385)
    at io/qiodevice.cpp:1402
#11 0x00007f3f83bf9bb3 in QIODevice::readLine(long long)
    (this=this@entry=0x7ffc08c73fc0, maxSize=2147483621, maxSize@entry=0) at io/qiodevice.cpp:1475
#12 0x00007f3f849b90af in (anonymous namespace)::readUntilDesktopEntryGroup(QFile&, QString const&, int&) (file=..., path=..., lineNr=@0x7ffc08c73f84: 86478990)
    at /home/nate/kde/src/kcoreaddons/src/lib/plugin/desktopfileparser.cpp:190
#13 0x00007f3f849bbaf3 in DesktopFileParser::convert(QString const&, QStringList const&, QJsonObject&, QString*, QStringList const&)
    (src=..., serviceTypes=..., json=..., libraryPath=libraryPath@entry=0x7ffc08c74058, serviceTypesSearchPaths=...) at /home/nate/kde/src/kcoreaddons/src/lib/plugin/desktopfileparser.cpp:602
#14 0x00007f3f849b000c in KPluginMetaData::loadFromDesktopFile(QString const&, QStringList const&)
    (this=0x7ffc08c740e0, file=..., serviceTypes=...)
    at /home/nate/kde/src/kcoreaddons/src/lib/plugin/kpluginmetadata.cpp:249
#15 0x00007f3f849b0200 in KPluginMetaData::fromDesktopFile(QString const&, QStringList const&)
    (file=..., serviceTypes=...)
    at /home/nate/kde/src/kcoreaddons/src/lib/plugin/kpluginmetadata.cpp:242
#16 0x00007f3f86762744 in KPackage::PackagePrivate::createPackageMetadata(QString const&)
    (this=0x3a25560, path=<optimized out>) at /usr/include/qt5/QtCore/qstringbuilder.h:147
#17 0x00007f3f867636ed in KPackage::Package::metadata() const (this=0x7ffc08c742b0)
    at /home/nate/kde/src/kpackage/src/kpackage/package.cpp:224
#18 0x00007f3f8676538a in KPackage::Package::setPath(QString const&)
    (this=this@entry=0x7ffc08c742b0, path=...)
    at /home/nate/kde/src/kpackage/src/kpackage/package.cpp:560
#19 0x00007f3f2f57e315 in MediaProxy::setSource(QString const&) (this=0x22a6410, url=<optimized out>)
    at /home/nate/kde/src/plasma-workspace/wallpapers/image/plugin/utils/mediaproxy.cpp:81
#20 0x00007f3f85b0e3ab in QQmlPropertyData::writeProperty(QObject*, void*, QFlags<QQmlPropertyData::WriteFlag>) const (flags=..., value=0x7ffc08c74318, target=<optimized out>, this=0x7f3f2816e048)
    at ../../include/QtQml/5.15.7/QtQml/private/../../../../../src/qml/qml/qqmlpropertydata_p.h:391
#21 GenericBinding<10>::doStore<QString>(QString, QQmlPropertyData const*, QFlags<QQmlPropertyData::WriteFlag>) const (flags=..., pd=0x7f3f2816e048, value=..., this=0x22f9b40) at qml/qqmlbinding.cpp:342
#22 GenericBinding<10>::write(QV4::Value const&, bool, QFlags<QQmlPropertyData::WriteFlag>)
    (this=0x22f9b40, result=..., isUndefined=<optimized out>, flags=...) at qml/qqmlbinding.cpp:323
#23 0x00007f3f85b0ec46 in QQmlNonbindingBinding::doUpdate(QQmlJavaScriptExpression::DeleteWatcher const&, QFlags<QQmlPropertyData::WriteFlag>, QV4::Scope&)
    (this=0x22f9b40, watcher=..., flags=..., scope=<optimized out>) at qml/qqmlbinding.cpp:258
#24 0x00007f3f85b0c5b4 in QQmlBinding::update(QFlags<QQmlPropertyData::WriteFlag>)
    (this=0x22f9b40, flags=...) at qml/qqmlbinding.cpp:194
#25 0x00007f3f85ae93ff in QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**)
    (endpoint=<optimized out>, a=0x0) at qml/qqmlnotifier.cpp:104
#26 0x00007f3f83cdb900 in doActivate<false>(QObject*, int, void**)
    (sender=0x2191660, signal_index=4, argv=0x0) at kernel/qobject.cpp:3811
#27 0x00007f3f83cd6bb7 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**)
    (sender=sender@entry=0x2191660, m=m@entry=0x7f3f2f58d6c0 <ImageBackend::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x0) at kernel/qobject.cpp:3979
#28 0x00007f3f2f561ab3 in ImageBackend::imageChanged() (this=this@entry=0x2191660)
    at /home/nate/kde/build/plasma-workspace/wallpapers/image/plugin/plasma_wallpaper_imageplugin_static_autogen/EWIEGA46WW/moc_imagebackend.cpp:488
#29 0x00007f3f2f5671f7 in ImageBackend::nextSlide() (this=0x2191660)
    at /home/nate/kde/src/plasma-workspace/wallpapers/image/plugin/imagebackend.cpp:458
#30 0x00007f3f83cdbc26 in QtPrivate::QSlotObjectBase::call(QObject*, void**)
    (a=0x7ffc08c75fe0, r=<optimized out>, this=0x2163dc0)
    at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#31 doActivate<false>(QObject*, int, void**) (sender=0x21916d0, signal_index=3, argv=0x7ffc08c75fe0)
    at kernel/qobject.cpp:3919
#32 0x00007f3f83cd6bb7 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**)
    (sender=<optimized out>, m=m@entry=0x7f3f83f6d580 <QTimer::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffc08c75fe0) at kernel/qobject.cpp:3979
#33 0x00007f3f83cdefae in QTimer::timeout(QTimer::QPrivateSignal) (this=<optimized out>, _t1=...)
    at .moc/moc_qtimer.cpp:205
#34 0x00007f3f83cd2d55 in QObject::event(QEvent*) (this=0x21916d0, e=0x7ffc08c76140)
    at kernel/qobject.cpp:1369
#35 0x00007f3f84baed12 in QApplicationPrivate::notify_helper(QObject*, QEvent*)
    (this=<optimized out>, receiver=0x21916d0, e=0x7ffc08c76140) at kernel/qapplication.cpp:3637
#36 0x00007f3f83ca8278 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
    (receiver=0x21916d0, event=0x7ffc08c76140) at kernel/qcoreapplication.cpp:1064
#37 0x00007f3f83cf8711 in QTimerInfoList::activateTimers() (this=0x185eaf0)
    at kernel/qtimerinfo_unix.cpp:643
#38 0x00007f3f83cf9034 in timerSourceDispatch (source=<optimized out>)
    at kernel/qeventdispatcher_glib.cpp:183
#39 idleTimerSourceDispatch(GSource*, GSourceFunc, gpointer) (source=<optimized out>)
    at kernel/qeventdispatcher_glib.cpp:230
#40 0x00007f3f82eb0cbf in g_main_dispatch (context=0x7f3f6c005010) at ../glib/gmain.c:3444
#41 g_main_context_dispatch (context=0x7f3f6c005010) at ../glib/gmain.c:4162
#42 0x00007f3f82f06598 in g_main_context_iterate.constprop.0
    (context=0x7f3f6c005010, block=1, dispatch=1, self=<optimized out>) at ../glib/gmain.c:4238
#43 0x00007f3f82eadf40 in g_main_context_iteration (context=0x7f3f6c005010, may_block=1)
    at ../glib/gmain.c:4303
#44 0x00007f3f83cf938a in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
    (this=0x185e8b0, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#45 0x00007f3f83ca6cca in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)
    (this=this@entry=0x7ffc08c763e0, flags=..., flags@entry=...)
    at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#46 0x00007f3f83caed92 in QCoreApplication::exec() ()
    at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#47 0x00007f3f8415fbe0 in QGuiApplication::exec() () at kernel/qguiapplication.cpp:1863
#48 0x00007f3f84baec89 in QApplication::exec() () at kernel/qapplication.cpp:2829
#49 0x0000000000423dd9 in main(int, char**) (argc=<optimized out>, argv=<optimized out>)
    at /home/nate/kde/src/plasma-workspace/shell/main.cpp:235
Comment 9 Nate Graham 2023-01-18 16:13:27 UTC
I can make this happen by copying the text "https://bugs.kde.org/show_bug.cgi?id=463711" in Firefox. Plasma immediately freezes.
Comment 10 Nate Graham 2023-01-18 16:18:54 UTC
Rebooted and that stopped reproducing the issue. :/
Comment 11 TraceyC 2025-02-25 19:20:44 UTC
(In reply to kyouinotame from comment #7)
> I generally have notifications off so I don't think that's related. As for
> the second bug, I'm on qtwayland version 5.15.7

I'm sorry we weren't able to do more in this report. Can we ask you to please check if this is still an issue with either Plasma 5.27.12 (the current LTS version) or Plasma 6.3.2 (the latest released version)?

If you can still reproduce the bug, please change the Status to "CONFIRMED". Thanks.
Comment 12 Bug Janitor Service 2025-03-12 03:47:19 UTC
🐛🧹 ⚠️ This bug has been in NEEDSINFO status with no change for at least 15 days. Please provide the requested information, then set the bug status to REPORTED. If there is no change for at least 30 days, it will be automatically closed as RESOLVED WORKSFORME.

For more information about our bug triaging procedures, please read https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging.

Thank you for helping us make KDE software even better for everyone!