Bug 450488 - Wayland - turning DP monitor off and back on causes plasmashell hang
Summary: Wayland - turning DP monitor off and back on causes plasmashell hang
Status: RESOLVED FIXED
Alias: None
Product: plasmashell
Classification: Plasma
Component: generic-multiscreen (show other bugs)
Version: 5.24.1
Platform: Kubuntu Linux
: NOR normal
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords: regression, wayland-only
: 455448 (view as bug list)
Depends on:
Blocks:
 
Reported: 2022-02-17 21:45 UTC by Denis
Modified: 2022-09-08 22:04 UTC (History)
8 users (show)

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


Attachments
plasmashell logs after monitor wake up (12.36 KB, text/x-log)
2022-02-17 21:45 UTC, Denis
Details
konsole crash report (2.19 KB, text/vnd.kde.kcrash-report)
2022-02-17 21:48 UTC, Denis
Details
kwallet crash report (2.11 KB, text/vnd.kde.kcrash-report)
2022-02-17 21:48 UTC, Denis
Details
plasmashell crash report (6.21 KB, text/vnd.kde.kcrash-report)
2022-02-17 21:52 UTC, Denis
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Denis 2022-02-17 21:45:59 UTC
Created attachment 146891 [details]
plasmashell logs after monitor wake up

SUMMARY
Turning monitor off and back on causes plasmashell hang. After turning monitor on task panel is gone immediately, desktop background image remains the same, and widgets are frozen for a 30 seconds or so. After ~30 seconds background turns black, and widgets are also gone. Right click on the desktop gives nothing. Some applications are still running and I'm able to alt+tab between them (firefox, chromium, terminator), some applications hang and crash after some time (konsole, qbittorrent, kwallet). However, plasmashell continues running (or at least it looks like so, the process exists), and I can start applications via KRunner (alt+f2). I fix plasma by running `plasmashell --replace`, after that desktop works fine - task panel is visible again, widgets are also visible and updating, my desktop background is back.

There are lots of similar lines in plasmashell log:
qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
requesting unexisting screen -1
kde.plasmashell: could not find primary screen "DP-2"

In crash reports of applications I see "The wayland connection experienced a fatal error" and "The Wayland connection broke. Did the Wayland compositor die?" messages.

STEPS TO REPRODUCE
1. Turn monitor off
2. Wait for like 15 seconds
3. Turn it back on. 
Note: same happens if it goes into standby mode after period of inactivity configured via system settings. However, in this case wait a bit more before touching mouse or keyboard to wake it up - like for 30 seconds or more, everything is fine if waking up it immediately after switch into standby.

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: Kubuntu 21.10, kernel 5.16.2-051602-generic, fresh KDE imported via official ppa
KDE Plasma Version: 5.24.1
KDE Frameworks Version: 5.91
Qt Version: 5.15.2
OpenGL renderer string: AMD Radeon RX 580 Series (polaris10, LLVM 13.0.1, DRM 3.44, 5.16.2-051602-generic), amdgpu driver
OpenGL core profile version string: 4.6 (Core Profile) Mesa 22.1.0-devel (git-9cbcdfb 2022-02-16 impish-oibaf-ppa)
Monitor connected via DP

ADDITIONAL INFO:
* experiencing this bug since 5.22.5, not sure if it'd happened before, started trying out Wayland since then
* I've tried deleting ".config/plasmashellrc" (read in some other bugs' discussions), no changes
* I've tried building plasmashell from source today and running it, no difference, same behaviour (--version reported 5.24.80)
* it looks very similar to bug 438839, however in my case plasmashell doesn't crash, and it doesn't necessarily produce .crash report after "plasmashell --replace". I thought better to report this.
* After I run "plasmashell --replace" there are three processes:
dance       9962    9801  0 фев17 tty2  00:05:15 /usr/bin/plasmashell
dance      31902    9962  0 фев17 tty2  00:00:00 [plasmashell] <defunct>
dance      64376       1  1 фев17 pts/2 00:00:37 /usr/bin/plasmashell --replace
Is that normal?
* I'm in doubt it's plasmashell issue in fact. May it be some KWin problem?
Comment 1 Denis 2022-02-17 21:48:07 UTC
Created attachment 146892 [details]
konsole crash report
Comment 2 Denis 2022-02-17 21:48:28 UTC
Created attachment 146893 [details]
kwallet crash report
Comment 3 Denis 2022-02-17 21:52:11 UTC
Created attachment 146894 [details]
plasmashell crash report

"plasmashell --replace" causes crash report being generated from time to time. There is a most recent one, produced on 5.24.0 version though.
Comment 4 sp82 2022-04-23 19:19:05 UTC
Hi, I got the same problem. This is the plasmashell output:

qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
requesting unexisting screen -1
requesting unexisting screen -1
requesting unexisting screen 0
requesting unexisting screen 0
requesting unexisting screen 0
requesting unexisting screen 0
requesting unexisting screen -1
requesting unexisting screen -1
requesting unexisting screen 0
requesting unexisting screen 0
requesting unexisting screen 0
requesting unexisting screen 0
requesting unexisting screen 0
qt.qpa.wayland: Wayland does not support QWindow::requestActivate()
requesting unexisting screen 0
requesting unexisting screen 0
requesting unexisting screen 0
requesting unexisting screen -1
requesting unexisting screen 0
requesting unexisting screen 0
requesting unexisting screen -1
requesting unexisting screen 0
requesting unexisting screen 0
requesting unexisting screen 0
qt.qpa.wayland: Wayland does not support QWindow::requestActivate()
requesting unexisting screen 0
requesting unexisting screen 0
requesting unexisting screen 0
requesting unexisting screen 0
requesting unexisting screen 0
requesting unexisting screen 0
xdg_surface@446: error -1: invalid window geometry size (0x0)
The Wayland connection experienced a fatal error: Errore di protocollo
Comment 5 goo 2022-05-24 23:42:06 UTC
I have a similar problem starting from plasma 5.24.90, running on X11, not wayland.
plasmashell and ui interaction hangs randomly.
I have a bunch of:

mag 25 01:30:20 darkgoo plasmashell[2070446]: requesting unexisting screen -1

If I disable compositing and re-enable it then it works for a while.
Prior to upgrading to plasma 5.24.90 I never had this sort of problem.

Running Fedora 36 - four monitor setup.
Comment 6 goo 2022-05-24 23:43:59 UTC
(In reply to goo from comment #5)
> I have a similar problem starting from plasma 5.24.90, running on X11, not
> wayland.
> plasmashell and ui interaction hangs randomly.
> I have a bunch of:
> 
> mag 25 01:30:20 darkgoo plasmashell[2070446]: requesting unexisting screen -1
> 
> If I disable compositing and re-enable it then it works for a while.
> Prior to upgrading to plasma 5.24.90 I never had this sort of problem.
> 
> Running Fedora 36 - four monitor setup.

Forgot to say that my primary screen is a DP monitor.
Comment 7 goo 2022-05-24 23:48:07 UTC
(In reply to goo from comment #6)
> (In reply to goo from comment #5)
> > I have a similar problem starting from plasma 5.24.90, running on X11, not
> > wayland.
> > plasmashell and ui interaction hangs randomly.
> > I have a bunch of:
> > 
> > mag 25 01:30:20 darkgoo plasmashell[2070446]: requesting unexisting screen -1
> > 
> > If I disable compositing and re-enable it then it works for a while.
> > Prior to upgrading to plasma 5.24.90 I never had this sort of problem.
> > 
> > Running Fedora 36 - four monitor setup.
> 
> Forgot to say that my primary screen is a DP monitor.

Other logs that might be useful:

mag 25 01:44:36 darkgoo plasmashell[2070446]: requesting unexisting screen -1
mag 25 01:44:36 darkgoo plasmashell[2070446]: requesting unexisting screen -1
mag 25 01:44:36 darkgoo plasmashell[2070446]: requesting unexisting screen -1
mag 25 01:44:36 darkgoo plasmashell[2070446]: requesting unexisting screen -1
mag 25 01:44:36 darkgoo plasmashell[2070446]: requesting unexisting screen -1
mag 25 01:44:36 darkgoo plasmashell[2070446]: requesting unexisting screen -1
mag 25 01:44:37 darkgoo baloo_file_extractor[2697474]: Qt: Session management error: Could not open network socket
mag 25 01:44:38 darkgoo kwin_x11[2070413]: qt.qpa.xcb: QXcbConnection: XCB error: 3 (BadWindow), sequence: 49005, resource id: 138412038, major code: 18 (ChangeProperty), minor code: 0
mag 25 01:44:39 darkgoo baloo_file_extractor[2697494]: Qt: Session management error: Could not open network socket
mag 25 01:44:40 darkgoo kwin_x11[2070413]: qt.qpa.xcb: QXcbConnection: XCB error: 3 (BadWindow), sequence: 49768, resource id: 138412038, major code: 18 (ChangeProperty), minor code: 0
mag 25 01:44:54 darkgoo kwin_x11[2070413]: kwin_core: Client  KWin::X11Window(0x561ab4c54880, windowId=0x860d5f3, caption="Aggiungi etichetta", transientFor=KWin::X11Window(0x561ab570e5c0, windowId=0x8600107, caption="* Java OpenStreetMap Editor"))  caused WM_TRANSIENT_FOR loop.
mag 25 01:44:54 darkgoo plasmashell[2070446]: QXcbClipboard::setMimeData: Cannot set X11 selection owner
mag 25 01:44:54 darkgoo plasmashell[2070446]: QXcbClipboard::setMimeData: Cannot set X11 selection owner
mag 25 01:44:55 darkgoo plasmashell[2070446]: QXcbClipboard::setMimeData: Cannot set X11 selection owner
mag 25 01:44:56 darkgoo plasmashell[2070446]: QXcbClipboard::setMimeData: Cannot set X11 selection owner
mag 25 01:44:57 darkgoo plasmashell[2070446]: QXcbClipboard::setMimeData: Cannot set X11 selection owner
mag 25 01:44:57 darkgoo plasmashell[2070446]: QXcbClipboard::setMimeData: Cannot set X11 selection owner
mag 25 01:45:02 darkgoo kwin_x11[2070413]: qt.qpa.xcb: QXcbConnection: XCB error: 3 (BadWindow), sequence: 11177, resource id: 138412038, major code: 18 (ChangeProperty), minor code: 0
mag 25 01:45:08 darkgoo kwin_x11[2070413]: kwin_core: Client  KWin::X11Window(0x561ab66eb2c0, windowId=0x860d6bc, caption="Aggiungi etichetta", transientFor=KWin::X11Window(0x561ab570e5c0, windowId=0x8600107, caption="* Java OpenStreetMap Editor"))  caused WM_TRANSIENT_FOR loop.
mag 25 01:45:12 darkgoo kwin_x11[2070413]: qt.qpa.xcb: QXcbConnection: XCB error: 3 (BadWindow), sequence: 28453, resource id: 140564156, major code: 20 (GetProperty), minor code: 0
mag 25 01:45:12 darkgoo kwin_x11[2070413]: qt.qpa.xcb: QXcbConnection: XCB error: 3 (BadWindow), sequence: 28460, resource id: 140564156, major code: 20 (GetProperty), minor code: 0
mag 25 01:45:12 darkgoo kwin_x11[2070413]: qt.qpa.xcb: QXcbConnection: XCB error: 3 (BadWindow), sequence: 28466, resource id: 140564156, major code: 20 (GetProperty), minor code: 0
mag 25 01:45:12 darkgoo kwin_x11[2070413]: qt.qpa.xcb: QXcbConnection: XCB error: 3 (BadWindow), sequence: 28471, resource id: 140564156, major code: 15 (QueryTree), minor code: 0
mag 25 01:45:14 darkgoo kwin_x11[2070413]: kwin_core: Client  KWin::X11Window(0x561ab66eb2c0, windowId=0x860d6cc, caption="Aggiungi etichetta", transientFor=KWin::X11Window(0x561ab570e5c0, windowId=0x8600107, caption="* Java OpenStreetMap Editor"))  caused WM_TRANSIENT_FOR loop.
Comment 8 Nate Graham 2022-09-08 22:04:15 UTC
This should have been fixed with a thing that went into Plasma 5.26. Please feel free to re-open if I'm wrong and you experience the exact same issue in Plasma 5.26.
Comment 9 Nate Graham 2022-09-08 22:04:57 UTC
*** Bug 455448 has been marked as a duplicate of this bug. ***