SUMMARY The compositor freezes when plugging in a new display while playing any fullscreen youtube video in firefox. STEPS TO REPRODUCE 1. Play a youtube video fullscreen in firefox 2. Plug in a new display OBSERVED RESULT Screen content freezes, capslock does not respond, but audio is still playing. Recovers after unplugging and replugging the displayport cable several times. EXPECTED RESULT Video continues playing normally and the compositor does not freeze. SOFTWARE/OS VERSIONS KDE Plasma Version: 6.2.5 KDE Frameworks Version: 6.10.0 Qt Version: 6.7.2 Kernel Version: 6.12.3-surface-2 (64-bit) Graphics Platform: Wayland Processors: 4 × Intel® Core™ i5-7300U CPU @ 2.60GHz Memory: 7.2 GiB of RAM Graphics Processor: Mesa Intel® HD Graphics 620
Can you ssh in from another device and get the backtrace from KWin? You can do that with > sudo gdb -p $(pidof kwin_wayland) and then just run "bt" in there.
(In reply to Zamundaaa from comment #1) > Can you ssh in from another device and get the backtrace from KWin? You can > do that with > > sudo gdb -p $(pidof kwin_wayland) > and then just run "bt" in there. I got one freeze out of 3 attempts: ``` #0 0x00007fb71ce989de in __futex_abstimed_wait_common64 (private=0, futex_word=0x571cb2406540, expected=0, op=393, abstime=0x0, cancel=true) at ./nptl/futex-internal.c:57 #1 __futex_abstimed_wait_common (futex_word=futex_word@entry=0x571cb2406540, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at ./nptl/futex-internal.c:87 #2 0x00007fb71ce98a5b in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x571cb2406540, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ./nptl/futex-internal.c:139 #3 0x00007fb71ce9b280 in __pthread_cond_wait_common (cond=0x571cb2406518, mutex=0x571cb24064f0, clockid=0, abstime=0x0) at ./nptl/pthread_cond_wait.c:503 #4 ___pthread_cond_wait (cond=0x571cb2406518, mutex=0x571cb24064f0) at ./nptl/pthread_cond_wait.c:618 #5 0x00007fb71d6d1483 in QWaitConditionPrivate::wait (this=0x571cb24064f0, deadline=...) at ./src/corelib/thread/qwaitcondition_unix.cpp:102 #6 QWaitCondition::wait (this=this@entry=0x571cb23d0eb0, mutex=mutex@entry=0x571cb23d0ea8, deadline=...) at ./src/corelib/thread/qwaitcondition_unix.cpp:180 #7 0x00007fb71e259324 in QDBusPendingCallPrivate::waitForFinished (this=0x571cb23d0e60) at ./src/dbus/qdbuspendingcall.cpp:206 #8 0x00007fb71e259371 in QDBusPendingCall::waitForFinished (this=this@entry=0x7ffc0100ab70) at ./src/dbus/qdbuspendingcall.cpp:325 #9 0x00007fb71c7dad62 in QDBusReply<unsigned int>::operator= (this=0x7ffc0100abb0, pcall=...) at /usr/include/x86_64-linux-gnu/qt6/QtDBus/qdbusreply.h:47 #10 QDBusReply<unsigned int>::QDBusReply (this=0x7ffc0100abb0, reply=...) at /usr/include/x86_64-linux-gnu/qt6/QtDBus/qdbusreply.h:52 #11 ScreenLocker::Interface::Inhibit (this=0x571cb0ef1590, application_name=<optimized out>, reason_for_inhibit=<optimized out>) at ./interface.cpp:118 #12 0x00007fb71c7f1ed5 in ScreenSaverAdaptor::Inhibit (this=<optimized out>, application_name=<optimized out>, reason_for_inhibit=<optimized out>) at ./obj-x86_64-linux-gnu/screensaveradaptor.cpp:57 #13 ScreenSaverAdaptor::qt_static_metacall (_o=<optimized out>, _id=<optimized out>, _a=0x7ffc0100ae48, _c=<optimized out>) at ./obj-x86_64-linux-gnu/moc_screensaveradaptor.cpp:191 #14 0x00007fb71c7f21d1 in ScreenSaverAdaptor::qt_static_metacall (_o=0x571cb0e4c830, _c=QMetaObject::InvokeMetaMethod, _id=4, _a=0x7ffc0100ae48) at ./obj-x86_64-linux-gnu/moc_screensaveradaptor.cpp:180 #15 ScreenSaverAdaptor::qt_metacall (this=0x571cb0e4c830, _c=QMetaObject::InvokeMetaMethod, _id=4, _a=0x7ffc0100ae48) at ./obj-x86_64-linux-gnu/moc_screensaveradaptor.cpp:235 #16 0x00007fb71e21e33f in QDBusConnectionPrivate::deliverCall (this=this@entry=0x7fb704001690, object=object@entry=0x571cb0e4c830, msg=..., metaTypes=<optimized out>, slotIdx=8) at ./src/dbus/qdbusintegrator.cpp:1007 #17 0x00007fb71e21ebc7 in QDBusConnectionPrivate::activateCall (this=0x7fb704001690, object=0x571cb0e4c830, flags=..., msg=...) at ./src/dbus/qdbusintegrator.cpp:916 #18 0x00007fb71e22753f in QDBusConnectionPrivate::activateObject (this=<optimized out>, node=..., msg=..., pathStartPos=<optimized out>) at ./src/dbus/qdbusintegrator.cpp:1484 #19 0x00007fb71e227582 in QDBusActivateObjectEvent::placeMetaCall (this=0x7fb704001c10) at ./src/dbus/qdbusintegrator.cpp:1604 #20 0x00007fb71d5c7fdb in QObject::event (this=0x571cb0ef1590, e=0x7fb704001c10) at ./src/corelib/kernel/qobject.cpp:1452 #21 0x00007fb71e5b20a2 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x571cb0ef1590, e=0x7fb704001c10) at ./src/widgets/kernel/qapplication.cpp:3287 #22 0x00007fb71d587928 in QCoreApplication::notifyInternal2 (receiver=0x571cb0ef1590, event=0x7fb704001c10) at ./src/corelib/kernel/qcoreapplication.cpp:1142 #23 0x00007fb71d58797d in QCoreApplication::sendEvent (receiver=<optimized out>, event=<optimized out>) at ./src/corelib/kernel/qcoreapplication.cpp:1583 #24 0x00007fb71d587bb7 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x571cb08d34f0) at ./src/corelib/kernel/qcoreapplication.cpp:1940 #25 0x00007fb71d6d18f5 in QEventDispatcherUNIX::processEvents (this=0x571cb083cc10, flags=flags@entry=...) at ./src/corelib/kernel/qeventdispatcher_unix.cpp:415 #26 0x00007fb71df66b51 in QUnixEventDispatcherQPA::processEvents (this=<optimized out>, flags=...) at ./src/gui/platform/unix/qunixeventdispatcher.cpp:27 #27 0x00007fb71d592adb in QEventLoop::exec (this=0x7ffc0100b5b0, flags=...) at ./src/corelib/global/qflags.h:34 #28 0x00007fb71d58a908 in QCoreApplication::exec () at ./src/corelib/global/qflags.h:74 #29 0x00007fb71dbc4490 in QGuiApplication::exec () at ./src/gui/kernel/qguiapplication.cpp:1926 #30 0x00007fb71e5ae5b9 in QApplication::exec () at ./src/widgets/kernel/qapplication.cpp:2555 #31 0x0000571c87a4e4c8 in main (argc=<optimized out>, argv=<optimized out>) at ./src/main_wayland.cpp:630 Detaching from program: /usr/bin/kwin_wayland, process 14448 [Inferior 1 (process 14448) detached] ``` After detaching the process, it recovered immediately.
Does the screen unfreeze after 25 seconds? iiuc kwin hangs here https://invent.kde.org/plasma/kscreenlocker/-/blob/8c94085926209dd8da7a89a2010b941a5476dea4/interface.cpp#L118
Also can you check whether the power management service is available? Run qdbus org.kde.Solid.PowerManagement.PolicyAgent
(In reply to Vlad Zahorodnii from comment #3) > Does the screen unfreeze after 25 seconds? > > iiuc kwin hangs here > https://invent.kde.org/plasma/kscreenlocker/-/blob/ > 8c94085926209dd8da7a89a2010b941a5476dea4/interface.cpp#L118 Yes, it unfreezes around 25s. (In reply to Vlad Zahorodnii from comment #4) > Also can you check whether the power management service is available? Run > > qdbus org.kde.Solid.PowerManagement.PolicyAgent ``` / /MainApplication /local /local/org_kde_powerdevil /org /org/freedesktop /org/freedesktop/PowerManagement /org/freedesktop/PowerManagement/Inhibit /org/kde /org/kde/ScreenBrightness /org/kde/ScreenBrightness/display0 /org/kde/ScreenBrightness/display1 /org/kde/Solid /org/kde/Solid/PowerManagement /org/kde/Solid/PowerManagement/Actions /org/kde/Solid/PowerManagement/Actions/BrightnessControl /org/kde/Solid/PowerManagement/Actions/HandleButtonEvents /org/kde/Solid/PowerManagement/Actions/ScreenBrightnessControl /org/kde/Solid/PowerManagement/Actions/SuspendSession /org/kde/Solid/PowerManagement/PolicyAgent ``` So I guess it exists.
Can you check powerdevil's logs please? journalctl --boot --user-unit plasma-powerdevil
(In reply to Vlad Zahorodnii from comment #6) > Can you check powerdevil's logs please? > > journalctl --boot --user-unit plasma-powerdevil ``` Jan 23 14:46:21 SurfacePro-6846 systemd[3075]: Starting plasma-powerdevil.service - Powerdevil... Jan 23 14:46:25 SurfacePro-6846 org_kde_powerdevil[3492]: Initializing libddcutil. ddcutil version: 2.1.4, shared library: /usr/lib/x86_64-linux-gnu/libddcutil.so.5.1.2 Jan 23 14:46:25 SurfacePro-6846 org_kde_powerdevil[3492]: Options passed from client: Jan 23 14:46:25 SurfacePro-6846 org_kde_powerdevil[3492]: Applying combined options: Jan 23 14:46:25 SurfacePro-6846 org_kde_powerdevil[3492]: Library initialization complete. Jan 23 14:46:25 SurfacePro-6846 org_kde_powerdevil[3492]: org.kde.powerdevil: [DDCutilDetector]: Failed to initialize callback Jan 23 14:46:26 SurfacePro-6846 org_kde_powerdevil[3492]: org.kde.powerdevil: org.kde.powerdevil.chargethresholdhelper.getthreshold failed "Charge thresholds are not supported by the kernel for this hardware" Jan 23 14:46:27 SurfacePro-6846 systemd[3075]: Started plasma-powerdevil.service - Powerdevil. Jan 23 14:46:27 SurfacePro-6846 org_kde_powerdevil[3492]: org.kde.powerdevil: Handle button events action could not check for screen configuration Jan 23 14:46:28 SurfacePro-6846 org_kde_powerdevil[3492]: org.kde.powerdevil: org.kde.powerdevil.chargethresholdhelper.getthreshold failed "Charge thresholds are not supported by the kernel for this hardware" ```
🐛🧹 ⚠️ 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!