Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

External Display Hard Lockup #109

Open
alexyao2015 opened this issue Oct 17, 2024 · 9 comments
Open

External Display Hard Lockup #109

alexyao2015 opened this issue Oct 17, 2024 · 9 comments
Labels
bug Something isn't working help wanted Extra attention is needed

Comments

@alexyao2015
Copy link

alexyao2015 commented Oct 17, 2024

Describe the bug
I have plasma6 enabled with Wayland on NixOS and have tried the following on Solus Linux as well. This issue does not occur on X11 plasma 6 or plasma 5.

The below steps causes a full hard display lockup that requires a hard reboot (press and hold power button). I've observed that the processes continue running in the background (e.g. audio from video continues playing) even while the display, mouse, and keyboard (not even caps/num lock work) are completely frozen. Sysrq commands also do not function in this state.

To Reproduce

  1. Use wayland. This does not occur in x11.
  2. Install kzones kwin script
  3. Attach external display to laptop. I am using an HDMI cable.
  4. Disable all other displays in kde using "Display Configuration"
  5. Unplug HDMI cable from laptop.
  6. Plug HDMI cable back in. (You may need to repeat steps 5 and 6 up to 2 times especially if this is done right after boot)
  7. Attempt to drag an existing window or open a new window and drag it. Specifically dragging the window is what causes the hard lockup.

Expected behavior
No hard lockup

System information (please complete the following information):

  • KZones version: 0.9
  • Plasma version: Tested across the following versions 6.0.5, 6.1.5, 6.2.0
  • Wayland or X11: Wayland only issue

Additional context
Initially reported as a KDE bug. Ref https://bugs.kde.org/show_bug.cgi?id=494619

@asmj1108
Copy link

I can confirm that I'm experiencing the same issue. The system locks up completely when attempting to drag a window after reattaching the HDMI cable, and a hard reboot is required to recover.

System Information:

  • Distro: Fedora 40
  • Plasma Version: 6.2.1
  • Graphics Platform: Wayland
  • KZones Version: 0.8

@gerritdevriese
Copy link
Owner

Does anyone have any logs they can share?

Also, a user plugin should never be able to crash the desktop environment in my opinion, but it can, and I had to add a lot of workarounds in the past to prevent crashes like these on Wayland. But in this case I don't have any idea what could be causing this.

I don't have have a second monitor to test, so all help is welcome!

@gerritdevriese gerritdevriese added help wanted Extra attention is needed bug Something isn't working labels Oct 19, 2024
@alexyao2015
Copy link
Author

Unfortunately, its hard to obtain logs because the system is in a completely frozen state. Where would the logs be? I may be able to see if ssh server still works during the lockup.

@asmj1108
Copy link

Here are the journal entries from the moment the HDMI cable for the external monitor was detached and reattached, and a window was dragged, causing the DE to freeze completely.

Systemd Journal
Oct 19 17:29:52 kactivitymanagerd[2948]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:29:52 akonadi_followupreminder_agent[3335]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:29:52 kdeconnectd[3212]: 2024-10-19T17:29:52 qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:29:52 akonadi_control[3260]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:29:52 akonadi_maildir_resource[3340]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:29:52 xdg-desktop-portal-kde[2992]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:29:52 akonadi_contacts_resource[3334]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:29:52 akonadi_unifiedmailbox_agent[3347]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:29:52 akonadi_newmailnotifier_agent[3345]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:29:52 akonadi_akonotes_resource[3332]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:29:52 akonadi_maildispatcher_agent[3341]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:29:52 polkit-kde-authentication-agent-1[2990]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:29:52 kwalletd6[2448]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:29:52 akonadi_imap_resource[3338]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:29:52 maliit-keyboard[2775]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:29:52 akonadi_archivemail_agent[3333]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:29:52 akonadi_imap_resource[3337]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:29:52 akonadi_sendlater_agent[3346]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:29:52 akonadi_indexing_agent[3339]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:29:52 akonadi_mailfilter_agent[3342]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:29:52 akonadi_mailmerge_agent[3343]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:29:52 DiscoverNotifier[3772]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:29:52 kalendarac[3774]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:29:52 akonadi_migration_agent[3344]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:29:52 akonadi_google_resource[3336]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:29:52 konsole[4057]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:29:52 kded6[2868]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:29:52 plasmashell[2911]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:29:52 org_kde_powerdevil[2991]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:29:52 plasmashell[2911]: kde.plasmashell: requesting unexisting screen available rect -1
Oct 19 17:29:52 plasmashell[2911]: kde.plasmashell: requesting unexisting screen available rect -1
Oct 19 17:29:52 plasmashell[2911]: kde.plasmashell: requesting unexisting screen available rect -1
Oct 19 17:29:52 plasmashell[2911]: kde.plasmashell: requesting unexisting screen available rect -1
Oct 19 17:29:52 plasmashell[2911]: kde.plasmashell: requesting unexisting screen available rect -1
Oct 19 17:29:52 plasmashell[2911]: kde.plasmashell: requesting unexisting screen available rect -1
Oct 19 17:29:52 plasmashell[2911]: kde.plasmashell: requesting unexisting screen available rect -1
Oct 19 17:29:52 plasmashell[2911]: kde.plasmashell: requesting unexisting screen available rect -1
Oct 19 17:29:52 plasmashell[2911]: file:///usr/share/plasma/plasmoids/org.kde.desktopcontainment/contents/ui/FolderItemDelegate.qml:238:17: Unable to assign [undefined] to bool
Oct 19 17:29:52 plasmashell[2911]: file:///usr/share/plasma/plasmoids/org.kde.desktopcontainment/contents/ui/FolderItemDelegate.qml:370:21: Unable to assign [undefined] to bool
Oct 19 17:29:52 systemd[1]: Started dbus-:[email protected].
Oct 19 17:29:52 audit[1]: SERVICE_START pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=dbus-:1.3-org.kde.powerdevil.backlighthelper@3 comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
Oct 19 17:29:52 org_kde_powerdevil[2991]: Sleep event. connector=card1-eDP-1, dref not set
Oct 19 17:29:52 org_kde_powerdevil[2991]: Delaying 6 seconds to avoid a false disconnect/connect sequence...
Oct 19 17:29:59 org_kde_powerdevil[2991]: DRM connectors with newly disconnected displays: card0-HDMI-A-2
Oct 19 17:29:59 org_kde_powerdevil[2991]: Removing connected display, drm_connector: card0-HDMI-A-2, dref Display_Ref[bus /dev/i2c-18]
Oct 19 17:30:01 kwin_wayland[2679]: kwin_scene_opengl: 0x500: GL_INVALID_ENUM error generated. Invalid <face>.
Oct 19 17:30:01 kernel: [drm] [nvidia-drm] [GPU ID 0x00000100] Framebuffer memory not appropriate for scanout
Oct 19 17:30:01 kernel: [drm] [nvidia-drm] [GPU ID 0x00000100] Framebuffer memory not appropriate for scanout
Oct 19 17:30:01 kwin_wayland[2679]: kwin_scene_opengl: Invalid framebuffer status:  "GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT"
Oct 19 17:30:01 kwin_wayland[2679]: kwin_scene_opengl: 0x502: GL_INVALID_OPERATION error generated. <image> and <target> are incompatible
Oct 19 17:30:01 kwin_wayland[2679]: kwin_scene_opengl: Invalid framebuffer status:  "GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT"
Oct 19 17:30:01 kwin_wayland[2679]: kwin_wayland_drm: Failed to create framebuffer: Invalid argument
Oct 19 17:30:01 kwin_wayland[2679]: kwin_wayland_drm: Failed to create framebuffer: Invalid argument
Oct 19 17:30:01 org_kde_powerdevil[2991]: Emitting DDCA_Display_Status_Event( 459.338:  DDCA_EVENT_DPMS_AWAKE, card1-eDP-1, dref: Display_Ref[NULL], io_path:/dev/i2c-10]
Oct 19 17:30:01 org_kde_powerdevil[2991]: Executed 1 registered callbacks.
Oct 19 17:30:01 org_kde_powerdevil[2991]: Emitting DDCA_Display_Status_Event( 466.338:  DDCA_EVENT_DISPLAY_DISCONNECTED, card0-HDMI-A-2, dref: Display_Ref[bus /dev/i2c-18], io_path:/dev/i2c-18]
Oct 19 17:30:01 org_kde_powerdevil[2991]: Executed 1 registered callbacks.
Oct 19 17:30:01 org_kde_powerdevil[2991]: Sleep event. connector=card1-eDP-1, dref not set

Oct 19 17:30:02 kactivitymanagerd[2948]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 xdg-desktop-portal-kde[2992]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 kwalletd6[2448]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 akonadi_followupreminder_agent[3335]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 akonadi_mailfilter_agent[3342]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 akonadi_akonotes_resource[3332]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 polkit-kde-authentication-agent-1[2990]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 akonadi_control[3260]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 akonadi_newmailnotifier_agent[3345]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 kdeconnectd[3212]: 2024-10-19T17:30:02 qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 akonadi_maildir_resource[3340]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 kded6[2868]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 akonadi_contacts_resource[3334]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 akonadi_indexing_agent[3339]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 akonadi_unifiedmailbox_agent[3347]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 maliit-keyboard[2775]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 DiscoverNotifier[3772]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 kalendarac[3774]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 akonadi_maildispatcher_agent[3341]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 akonadi_imap_resource[3337]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 akonadi_migration_agent[3344]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 akonadi_mailmerge_agent[3343]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 akonadi_sendlater_agent[3346]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 akonadi_google_resource[3336]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 konsole[4057]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 akonadi_imap_resource[3338]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 plasmashell[2911]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 akonadi_archivemail_agent[3333]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 plasmashell[2911]: kde.plasmashell: requesting unexisting screen available rect -1
Oct 19 17:30:02 plasmashell[2911]: kde.plasmashell: requesting unexisting screen available rect -1
Oct 19 17:30:02 plasmashell[2911]: kde.plasmashell: requesting unexisting screen available rect -1
Oct 19 17:30:02 plasmashell[2911]: kde.plasmashell: requesting unexisting screen available rect -1
Oct 19 17:30:02 kwin_wayland[2679]: kwin_core: XCB error: 147 (BadOutput), sequence: 734, resource id: 1330, major code: 140 (RANDR), minor code: 30 (SetOutputPrimary)
Oct 19 17:30:02 plasmashell[2911]: kde.plasmashell: requesting unexisting screen available rect -1
Oct 19 17:30:02 plasmashell[2911]: kde.plasmashell: requesting unexisting screen available rect -1
Oct 19 17:30:02 plasmashell[2911]: kde.plasmashell: requesting unexisting screen available rect -1
Oct 19 17:30:02 plasmashell[2911]: kde.plasmashell: requesting unexisting screen available rect -1
Oct 19 17:30:02 plasmashell[2911]: file:///usr/share/plasma/plasmoids/org.kde.desktopcontainment/contents/ui/FolderItemDelegate.qml:238:17: Unable to assign [undefined] to bool
Oct 19 17:30:02 plasmashell[2911]: file:///usr/share/plasma/plasmoids/org.kde.desktopcontainment/contents/ui/FolderItemDelegate.qml:370:21: Unable to assign [undefined] to bool
Oct 19 17:30:02 org_kde_powerdevil[2991]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 plasmashell[2911]: kf.plasma.quick: Exposed with no visual parent. Window positioning broken.
Oct 19 17:30:02 plasmashell[2911]: The cached device pixel ratio value was stale on window update.  Please file a QTBUG which explains how to reproduce.
Oct 19 17:30:02 plasmashell[2911]: The cached device pixel ratio value was stale on window update.  Please file a QTBUG which explains how to reproduce.
Oct 19 17:30:02 xdg-desktop-portal-kde[2992]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 kwalletd6[2448]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 maliit-keyboard[2775]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 kactivitymanagerd[2948]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 kdeconnectd[3212]: 2024-10-19T17:30:02 qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 akonadi_contacts_resource[3334]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 akonadi_akonotes_resource[3332]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 akonadi_indexing_agent[3339]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 akonadi_followupreminder_agent[3335]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 akonadi_control[3260]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 kded6[2868]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 akonadi_maildispatcher_agent[3341]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 akonadi_maildir_resource[3340]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 polkit-kde-authentication-agent-1[2990]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 akonadi_migration_agent[3344]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 akonadi_imap_resource[3337]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 akonadi_mailfilter_agent[3342]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 akonadi_mailmerge_agent[3343]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 akonadi_imap_resource[3338]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 akonadi_newmailnotifier_agent[3345]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 akonadi_unifiedmailbox_agent[3347]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 akonadi_archivemail_agent[3333]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 akonadi_sendlater_agent[3346]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 akonadi_google_resource[3336]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 kalendarac[3774]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 DiscoverNotifier[3772]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:02 konsole[4057]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:03 org_kde_powerdevil[2991]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:03 plasmashell[2911]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:03 plasmashell[2911]: kde.plasmashell: requesting unexisting screen available rect -1
Oct 19 17:30:03 plasmashell[2911]: kde.plasmashell: requesting unexisting screen available rect -1
Oct 19 17:30:03 plasmashell[2911]: kde.plasmashell: requesting unexisting screen available rect -1
Oct 19 17:30:03 plasmashell[2911]: kde.plasmashell: requesting unexisting screen available rect -1
Oct 19 17:30:03 plasmashell[2911]: kde.plasmashell: requesting unexisting screen available rect -1
Oct 19 17:30:03 plasmashell[2911]: kde.plasmashell: requesting unexisting screen available rect -1
Oct 19 17:30:03 plasmashell[2911]: kde.plasmashell: requesting unexisting screen available rect -1
Oct 19 17:30:03 plasmashell[2911]: kde.plasmashell: requesting unexisting screen available rect -1
Oct 19 17:30:03 plasmashell[2911]: file:///usr/share/plasma/plasmoids/org.kde.desktopcontainment/contents/ui/FolderItemDelegate.qml:238:17: Unable to assign [undefined] to bool
Oct 19 17:30:03 plasmashell[2911]: file:///usr/share/plasma/plasmoids/org.kde.desktopcontainment/contents/ui/FolderItemDelegate.qml:370:21: Unable to assign [undefined] to bool
Oct 19 17:30:03 plasmashell[2911]: The cached device pixel ratio value was stale on window update.  Please file a QTBUG which explains how to reproduce.
Oct 19 17:30:03 plasmashell[2911]: The cached device pixel ratio value was stale on window update.  Please file a QTBUG which explains how to reproduce.
Oct 19 17:30:05 org_kde_powerdevil[2991]: stabilized_connector_names required 2 extra calls to get_sysfs_drm_connector_names()
Oct 19 17:30:05 akonadi_newmailnotifier_agent[3345]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:05 maliit-keyboard[2775]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:05 akonadi_maildir_resource[3340]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:05 kded6[2868]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:05 akonadi_followupreminder_agent[3335]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:05 akonadi_akonotes_resource[3332]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:05 kwalletd6[2448]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:05 akonadi_contacts_resource[3334]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:05 xdg-desktop-portal-kde[2992]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:05 polkit-kde-authentication-agent-1[2990]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:05 akonadi_unifiedmailbox_agent[3347]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:05 akonadi_indexing_agent[3339]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:05 akonadi_imap_resource[3338]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:05 akonadi_control[3260]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:05 kactivitymanagerd[2948]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:05 akonadi_mailmerge_agent[3343]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:05 kdeconnectd[3212]: 2024-10-19T17:30:05 qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:05 akonadi_sendlater_agent[3346]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:05 akonadi_mailfilter_agent[3342]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:05 DiscoverNotifier[3772]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:05 kwin_wayland[2679]: kwin_core: XCB error: 147 (BadOutput), sequence: 822, resource id: 1334, major code: 140 (RANDR), minor code: 30 (SetOutputPrimary)
Oct 19 17:30:05 akonadi_google_resource[3336]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:05 akonadi_archivemail_agent[3333]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:05 akonadi_maildispatcher_agent[3341]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:05 kalendarac[3774]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:05 plasmashell[2911]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:05 konsole[4057]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:05 akonadi_imap_resource[3337]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:05 akonadi_migration_agent[3344]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:05 plasmashell[2911]: kde.plasmashell: requesting unexisting screen available rect -1
Oct 19 17:30:05 plasmashell[2911]: kde.plasmashell: requesting unexisting screen available rect -1
Oct 19 17:30:05 plasmashell[2911]: kde.plasmashell: requesting unexisting screen available rect -1
Oct 19 17:30:05 plasmashell[2911]: kde.plasmashell: requesting unexisting screen available rect -1
Oct 19 17:30:05 plasmashell[2911]: kde.plasmashell: requesting unexisting screen available rect -1
Oct 19 17:30:05 plasmashell[2911]: kde.plasmashell: requesting unexisting screen available rect -1
Oct 19 17:30:05 plasmashell[2911]: kde.plasmashell: requesting unexisting screen available rect -1
Oct 19 17:30:05 plasmashell[2911]: kde.plasmashell: requesting unexisting screen available rect -1
Oct 19 17:30:05 plasmashell[2911]: file:///usr/share/plasma/plasmoids/org.kde.desktopcontainment/contents/ui/FolderItemDelegate.qml:238:17: Unable to assign [undefined] to bool
Oct 19 17:30:05 plasmashell[2911]: file:///usr/share/plasma/plasmoids/org.kde.desktopcontainment/contents/ui/FolderItemDelegate.qml:370:21: Unable to assign [undefined] to bool
Oct 19 17:30:05 org_kde_powerdevil[2991]: qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
Oct 19 17:30:05 plasmashell[2911]: kf.plasma.quick: Exposed with no visual parent. Window positioning broken.
Oct 19 17:30:05 plasmashell[2911]: The cached device pixel ratio value was stale on window update.  Please file a QTBUG which explains how to reproduce.
Oct 19 17:30:05 plasmashell[2911]: The cached device pixel ratio value was stale on window update.  Please file a QTBUG which explains how to reproduce.
Oct 19 17:30:07 org_kde_powerdevil[2991]: Emitting DDCA_Display_Status_Event( 468.340:  DDCA_EVENT_DPMS_ASLEEP, card1-eDP-1, dref: Display_Ref[NULL], io_path:/dev/i2c-10]
Oct 19 17:30:07 org_kde_powerdevil[2991]: Executed 1 registered callbacks.
Oct 19 17:30:07 org_kde_powerdevil[2991]: Emitting DDCA_Display_Status_Event( 471.700:  DDCA_EVENT_DISPLAY_CONNECTED, card0-HDMI-A-2, dref: Display_Ref[NULL], io_path:/dev/i2c--1]
Oct 19 17:30:07 org_kde_powerdevil[2991]: Executed 1 registered callbacks.
Oct 19 17:30:07 org_kde_powerdevil[2991]: Display redetection starting.
Oct 19 17:30:07 org_kde_powerdevil[2991]: Watch thread terminated.
Oct 19 17:30:09 org_kde_powerdevil[2991]: Watch thread started
Oct 19 17:30:09 org_kde_powerdevil[2991]: Display redetection finished.
Oct 19 17:30:10 kwin_wayland[2679]: kwin_scene_opengl: 0x500: GL_INVALID_ENUM error generated. Invalid <face>.
Oct 19 17:30:10 kwin_wayland[2679]: kwin_scene_opengl: Invalid framebuffer status:  "GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT"
Oct 19 17:30:10 kwin_wayland[2679]: kwin_scene_opengl: 0x502: GL_INVALID_OPERATION error generated. <image> and <target> are incompatible
Oct 19 17:30:10 kwin_wayland[2679]: kwin_scene_opengl: Invalid framebuffer status:  "GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT"
Oct 19 17:30:10 kwin_wayland[2679]: kwin_wayland_drm: Failed to create framebuffer: Invalid argument
Oct 19 17:30:10 kernel: [drm] [nvidia-drm] [GPU ID 0x00000100] Framebuffer memory not appropriate for scanout
Oct 19 17:30:10 kernel: [drm] [nvidia-drm] [GPU ID 0x00000100] Framebuffer memory not appropriate for scanout
Oct 19 17:30:10 kwin_wayland[2679]: kwin_wayland_drm: Failed to create framebuffer: Invalid argument
Oct 19 17:30:10 org_kde_powerdevil[2991]: dh=Display_Handle[i2c-18: fd=36], Replacing adjusted sleep multiplier 0.50 with 1.00 for SE_POST_WRITE or SE_POST_SAVE_SETTINGS
Oct 19 17:30:11 org_kde_powerdevil[2991]: Sleep event. connector=card1-eDP-1, dref not set
Oct 19 17:30:13 org_kde_powerdevil[2991]: Emitting DDCA_Display_Status_Event( 478.152:  DDCA_EVENT_DPMS_ASLEEP, card1-eDP-1, dref: Display_Ref[NULL], io_path:/dev/i2c-10]
Oct 19 17:30:13 org_kde_powerdevil[2991]: Executed 1 registered callbacks.

Oct 19 17:30:15 systemd[1]: dbus-:[email protected]: Deactivated successfully.
Oct 19 17:30:15 audit[1]: SERVICE_STOP pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=dbus-:1.3-org.kde.powerdevil.backlighthelper@3 comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
Oct 19 17:30:22 kwin_wayland[2679]: This plugin does not support setting window masks
Oct 19 17:30:22 kwin_wayland[2679]: This plugin does not support setting window masks
Oct 19 17:30:22 kwin_wayland[2679]: kwin_scene_opengl: 0x2: GL_INVALID_OPERATION in glDrawBuffers(unsupported buffer GL_BACK_LEFT)
Oct 19 17:30:22 kwin_wayland[2679]: kwin_scene_opengl: 0x2: GL_INVALID_OPERATION in glDrawBuffers(unsupported buffer GL_BACK_LEFT)
Oct 19 17:30:22 kwin_wayland[2679]: This plugin does not support setting window masks
Oct 19 17:30:22 kwin_wayland[2679]: This plugin does not support setting window masks
Oct 19 17:30:22 kwin_wayland[2679]: This plugin does not support setting window masks
Oct 19 17:30:22 kwin_wayland[2679]: kwin_scene_opengl: 0x2: GL_INVALID_OPERATION in glDrawBuffers(unsupported buffer GL_BACK_LEFT)
Oct 19 17:30:22 kwin_wayland[2679]: This plugin does not support setting window masks
Oct 19 17:30:22 kwin_wayland[2679]: This plugin does not support setting window masks
Oct 19 17:30:22 kwin_wayland[2679]: This plugin does not support setting window masks
Oct 19 17:30:22 kwin_wayland[2679]: kwin_scene_opengl: 0x2: GL_INVALID_OPERATION in glDrawBuffers(unsupported buffer GL_BACK_LEFT)
Oct 19 17:30:22 kwin_wayland[2679]: This plugin does not support setting window masks
Oct 19 17:30:22 kwin_wayland[2679]: This plugin does not support setting window masks
Oct 19 17:30:22 kwin_wayland[2679]: This plugin does not support setting window masks
Oct 19 17:30:22 kwin_wayland[2679]: kwin_scene_opengl: 0x2: GL_INVALID_OPERATION in glDrawBuffers(unsupported buffer GL_BACK_LEFT)
Oct 19 17:30:22 kwin_wayland[2679]: This plugin does not support setting window masks
Oct 19 17:30:22 kwin_wayland[2679]: This plugin does not support setting window masks
Oct 19 17:30:22 kwin_wayland[2679]: This plugin does not support setting window masks
Oct 19 17:30:22 kwin_wayland[2679]: kwin_scene_opengl: 0x2: GL_INVALID_OPERATION in glDrawBuffers(unsupported buffer GL_BACK_LEFT)
Oct 19 17:30:22 kwin_wayland[2679]: This plugin does not support setting window masks
Oct 19 17:30:22 kwin_wayland[2679]: This plugin does not support setting window masks
Oct 19 17:30:22 kwin_wayland[2679]: This plugin does not support setting window masks
Oct 19 17:30:22 kwin_wayland[2679]: kwin_scene_opengl: 0x2: GL_INVALID_OPERATION in glDrawBuffers(unsupported buffer GL_BACK_LEFT)
Oct 19 17:30:22 kwin_wayland[2679]: This plugin does not support setting window masks
Oct 19 17:30:22 kwin_wayland[2679]: This plugin does not support setting window masks
Oct 19 17:30:22 kwin_wayland[2679]: This plugin does not support setting window masks
Oct 19 17:30:22 kwin_wayland[2679]: kwin_scene_opengl: 0x2: GL_INVALID_OPERATION in glDrawBuffers(unsupported buffer GL_BACK_LEFT)
Oct 19 17:30:22 kwin_wayland[2679]: This plugin does not support setting window masks
Oct 19 17:30:22 kwin_wayland[2679]: This plugin does not support setting window masks
Oct 19 17:30:22 kwin_wayland[2679]: This plugin does not support setting window masks
Oct 19 17:30:22 kwin_wayland[2679]: kwin_scene_opengl: 0x2: GL_INVALID_OPERATION in glDrawBuffers(unsupported buffer GL_BACK_LEFT)
Oct 19 17:30:22 kwin_wayland[2679]: This plugin does not support setting window masks
Oct 19 17:30:22 kwin_wayland[2679]: This plugin does not support setting window masks
Oct 19 17:30:22 kwin_wayland[2679]: This plugin does not support setting window masks
Oct 19 17:30:22 kwin_wayland[2679]: kwin_scene_opengl: 0x2: GL_INVALID_OPERATION in glDrawBuffers(unsupported buffer GL_BACK_LEFT)
Oct 19 17:30:22 kwin_wayland[2679]: This plugin does not support setting window masks
Oct 19 17:30:22 kwin_wayland[2679]: This plugin does not support setting window masks
Oct 19 17:30:22 kwin_wayland[2679]: This plugin does not support setting window masks
Oct 19 17:30:22 kwin_wayland[2679]: kwin_scene_opengl: 0x2: GL_INVALID_OPERATION in glDrawBuffers(unsupported buffer GL_BACK_LEFT)
...
IT KEEPS REPEATING UNTIL
...
Oct 19 17:30:31 kwin_wayland[2679]: This plugin does not support setting window masks
Oct 19 17:30:31 kwin_wayland[2679]: This plugin does not support setting window masks
Oct 19 17:30:31 kwin_wayland[2679]: This plugin does not support setting window masks
Oct 19 17:30:31 kwin_wayland[2679]: kwin_scene_opengl: 0x2: GL_INVALID_OPERATION in glDrawBuffers(unsupported buffer GL_BACK_LEFT)
Oct 19 17:30:31 kwin_wayland[2679]: This plugin does not support setting window masks
Oct 19 17:30:31 kwin_wayland[2679]: This plugin does not support setting window masks
Oct 19 17:30:31 kwin_wayland[2679]: This plugin does not support setting window masks
Oct 19 17:30:32 kwin_wayland[2679]: kwin_scene_opengl: 0x2: GL_INVALID_OPERATION in glDrawBuffers(unsupported buffer GL_BACK_LEFT)
Oct 19 17:30:32 kwin_wayland[2679]: This plugin does not support setting window masks
Oct 19 17:30:32 kwin_wayland[2679]: This plugin does not support setting window masks
Oct 19 17:30:32 kwin_wayland[2679]: This plugin does not support setting window masks
Oct 19 17:30:32 kwin_wayland[2679]: kwin_wayland_drm: Pageflip timed out! This is a kernel bug

@asmj1108
Copy link

In the journal, this line

kwin_wayland_drm: Pageflip timed out! This is a kernel bug

suggests it being a kernel bug, so I searched around and found this relevant bug report Window drag causes "Pageflip timed out! This is a kernel bug" , which eventually leads to kwin_wayland_drm: Pageflip timed out! This is a kernel bug.

At this point, it seems like an upstream issue to me, but the people there are still investigating, so not 100% sure

@gerritdevriese
Copy link
Owner

Hi, any updates?

@1amnotmad
Copy link

1amnotmad commented Dec 23, 2024

Just adding that I am experiencing this as well. I am on CachyOS. I have similar logs as posted by @asmj1108 right before the freeze there are a bunch of these repeating:
Dec 23 11:34:44 siren kwin_wayland[1387]: kwin_scene_opengl: 0x502: GL_INVALID_OPERATION error generated. Dec 23 11:34:44 siren kwin_wayland[1387]: This plugin does not support setting window masks Dec 23 11:34:44 siren kwin_wayland[1387]: This plugin does not support setting window masks Dec 23 11:34:44 siren kwin_wayland[1387]: This plugin does not support setting window masks

More info:

  • I am not on a laptop, but I do have 2 displays connected.
  • one of my displays is not always on and enabled in kde display settings. but either way, this will seem to occur, I will try to track more closely now that i know it is this script.
  • The lock up seems to always occur when I go to grab a window with the mouse. The pointer freezes and whole system freezes, and I have to hard reboot.

Hopefully this can get fixed! This is an absolutely excellent script and precisely what i was looking from after moving to Gnome from KDE. I used the TilingShell extension, and this one you've made is super close to that. Assuming this issue gets fixed, I have a few feature requests I can drop here, and also happy to support (as I did TilingShell!)
Thank you!

@jacobkuzmits
Copy link

I experience the same issue.

OS: openSUSE Tumbleweed
Kernel: 6.12.6-1-default
Plasma 6.2.4
Wayland

I run a triple monitor setup, two are 1440p and one is 4k. The specific thing that causes my system to lock is changing the scaling setting on the 4k display. After doing this, attempting to move a window results in a lock. Changing the scaling on either of the 1440p displays does not trigger the bug. It does not matter if I change the 4k scaling from 100% to 75% or 125% or 200%. I don't feel like testing it again to verify, but I'm reasonably certain it also is caused by changing from 100% to 200% and then back to 100% as this is the typical scenario I encountered the bug in.

With KZones enabled, without triggering the bug by changing scaling, moving a Window produces these logs:

Systemd logs

kwin_wayland[2647]: trying to show an empty dialog
kwin_wayland[2647]: This plugin does not support setting window masks
kwin_wayland[2647]: This plugin does not support setting window masks
kwin_wayland[2647]: kwin_scene_opengl: 0x3: GL_INVALID_OPERATION in glDrawBuffers(unsupported buffer GL_BACK_LEFT)
kwin_wayland[2647]: kwin_scene_opengl: 0x3: GL_INVALID_OPERATION in glDrawBuffers(unsupported buffer GL_BACK_LEFT)
kwin_wayland[2647]: kwin_scene_opengl: 0x3: GL_INVALID_OPERATION in glDrawBuffers(unsupported buffer GL_BACK_LEFT)

Moving a Window and also moving the mouse to the top of the screen to make the dropdown for selecting a layout show or moving the mouse to the drop point of a specific zone produces the same log, except the GL_INVALID_OPERATION message will be shown more. In the first case of moving a Window without touching any of the KZones areas with the mouse, the GL_INVALID_OPERATION message shows exactly 3 times. When touching a KZones area, the message shows a variable number of times, something like 30-60 times.

When the bug is triggered and the system locks, these logs are produced:

Systemd log

kwin_wayland[3282]: This plugin does not support setting window masks
kwin_wayland[3282]: This plugin does not support setting window masks
kwin_wayland[3282]: kwin_scene_opengl: 0x2: GL_INVALID_OPERATION in glDrawBuffers(unsupported buffer GL_BACK_LEFT)
kwin_wayland[3282]: kwin_scene_opengl: 0x2: GL_INVALID_OPERATION in glDrawBuffers(unsupported buffer GL_BACK_LEFT)
kwin_wayland[3282]: This plugin does not support setting window masks
kwin_wayland[3282]: This plugin does not support setting window masks
kwin_wayland[3282]: This plugin does not support setting window masks
kwin_wayland[3282]: kwin_scene_opengl: 0x2: GL_INVALID_OPERATION in glDrawBuffers(unsupported buffer GL_BACK_LEFT)
kwin_wayland[3282]: This plugin does not support setting window masks
kwin_wayland[3282]: This plugin does not support setting window masks
kwin_wayland[3282]: This plugin does not support setting window masks
kwin_wayland[3282]: kwin_scene_opengl: 0x2: GL_INVALID_OPERATION in glDrawBuffers(unsupported buffer GL_BACK_LEFT)
---- repeat last 4 lines seemingly infinitely

Sometimes this line shows up, but not exclusively at the end of the log as above reports may indicate
kwin_wayland_drm: Pageflip timed out! This is a kernel bug

The only thing I notice in common with the above logs is the line:
The cached device pixel ratio value was stale on window update. Please file a QTBUG which explains how to reproduce.
Which I did think was potentially interesting before seeing someone else with the same message.

Can anyone else who is experiencing this issue test only changing scaling settings and see if they can trigger it?

@fynzhak
Copy link
Contributor

fynzhak commented Jan 7, 2025

I've been playing around with this a bit.
I have my main display and an HDMI dummy plug. I only ever have one display enabled at a time.
Last week I was able to trigger the lockup consistently by letting the monitor go to sleep (Set Plasma's turn off screen time to 1 minute), wake it up with the mouse, then try to move a window.

(Un)fortunately I actually haven't seen the issue in a while so if it's still present it's pretty inconsistent.

I'm on Arch kernel 6.12.8-arch1-1
Plasma 6.2.5 Wayland
I'm running a build of KZones for debugging from hash a1f01e4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

6 participants