Bug 482399 - Plasmashell exits with Wayland protocol error (kde_screen_edge_manager_v1@182: error 1: surface must have layer_surface role) When I turn my monitors off and back on
Summary: Plasmashell exits with Wayland protocol error (kde_screen_edge_manager_v1@182...
Status: RESOLVED FIXED
Alias: None
Product: plasmashell
Classification: Plasma
Component: generic-crash (show other bugs)
Version: 6.0.0
Platform: Arch Linux Linux
: NOR crash
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords: multiscreen, qt6
Depends on:
Blocks:
 
Reported: 2024-03-04 16:56 UTC by Dashon
Modified: 2024-03-13 17:41 UTC (History)
5 users (show)

See Also:
Latest Commit:
Version Fixed In: 6.0.2


Attachments
terminal output with WAYLAND_DEBUG=1 (424.13 KB, text/x-log)
2024-03-06 05:52 UTC, Dashon
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Dashon 2024-03-04 16:56:22 UTC
SUMMARY
Testing plasma 6 using arch's testing repositories.
Whenever I turn off one or both of my monitors and then turn them back on. I am greeted with a black screen. I then have to run "plasmashell --replace" in order to fix everything. If I turn off both monitors at the same time. I can turn them back on with no problem if I do so withing a few minutes. However, If I leave them off over night like I do when I go to bed then I have the same issue. If I only turn off one monitor then I get an instant black screen on the remaining one.
[Wayland + Nvidia]

STEPS TO REPRODUCE
1. Have multiple monitors I guess?
2. Turn off one monitor

OBSERVED RESULT
Your other screen will turn black as if plasmashell crashed.

EXPECTED RESULT
Plasmashell should not crash and everything should be as I left it.

SOFTWARE/OS VERSIONS
Operating System: EndeavourOS 
KDE Plasma Version: 6.0.0
KDE Frameworks Version: 6.0.0
Qt Version: 6.6.2
Kernel Version: 6.7.6-zen1-2-zen (64-bit)
Graphics Platform: Wayland
Processors: 16 × AMD Ryzen 7 5800X 8-Core Processor
Memory: 62.7 GiB of RAM
Graphics Processor: NVIDIA GeForce RTX 3080/PCIe/SSE2
Manufacturer: Micro-Star International Co., Ltd.
Product Name: MS-7C95
System Version: 1.0

ADDITIONAL INFORMATION:
I was trying to get a back trace, but can't seem to get one for plasmashell due to all the threads.
Here is what I was able to capture in gdb though:
[Detaching after vfork from child process 19401]

                                                                                          

                                                                                          
[New Thread 0x7fff68c006c0 (LWP 19404)]
[New Thread 0x7fffbb4006c0 (LWP 19405)]
[New Thread 0x7fffbaa006c0 (LWP 19406)]
[New Thread 0x7fffba0006c0 (LWP 19407)]
[New Thread 0x7fff732006c0 (LWP 19408)]
[New Thread 0x7fff728006c0 (LWP 19409)]
[New Thread 0x7fff61e006c0 (LWP 19410)]
[New Thread 0x7fff60a006c0 (LWP 19411)]
[New Thread 0x7fff27e006c0 (LWP 19412)]
[New Thread 0x7fff274006c0 (LWP 19413)]
[New Thread 0x7fff260006c0 (LWP 19414)]
[Thread 0x7fffba0006c0 (LWP 19407) exited]
[Thread 0x7fffbb4006c0 (LWP 19405) exited]
[Thread 0x7fffbaa006c0 (LWP 19406) exited]
[Thread 0x7fffab0006c0 (LWP 19356) exited]
[Thread 0x7fffac4006c0 (LWP 19354) exited]
[Thread 0x7fffaba006c0 (LWP 19355) exited]
[Thread 0x7fff61e006c0 (LWP 19410) exited]
[Thread 0x7fff732006c0 (LWP 19408) exited]
[Thread 0x7fff728006c0 (LWP 19409) exited]
[Thread 0x7fff274006c0 (LWP 19413) exited]
[Thread 0x7fff60a006c0 (LWP 19411) exited]
[Thread 0x7fff27e006c0 (LWP 19412) exited]
[Thread 0x7fffa34006c0 (LWP 19368) exited]
[Thread 0x7fffa3e006c0 (LWP 19367) exited]
[Thread 0x7fffa92006c0 (LWP 19365) exited]
[Thread 0x7fffee8006c0 (LWP 19327) exited]
[Thread 0x7fffc5e006c0 (LWP 19393) exited]
[Thread 0x7fff260006c0 (LWP 19414) exited]
[Thread 0x7fff68c006c0 (LWP 19404) exited]
[Thread 0x7fffbbe006c0 (LWP 19398) exited]
[Thread 0x7fffc7a006c0 (LWP 19392) exited]
[Thread 0x7fff696006c0 (LWP 19387) exited]
[Thread 0x7fff6aa006c0 (LWP 19385) exited]
[Thread 0x7fff7cc006c0 (LWP 19384) exited]
[Thread 0x7fff7d6006c0 (LWP 19383) exited]
[Thread 0x7fff7e0006c0 (LWP 19382) exited]
[Thread 0x7fff7ea006c0 (LWP 19381) exited]
[Thread 0x7fff7f4006c0 (LWP 19380) exited]
[Thread 0x7fff7fe006c0 (LWP 19379) exited]
[Thread 0x7fff892006c0 (LWP 19378) exited]
[Thread 0x7fff89c006c0 (LWP 19377) exited]
[Thread 0x7fffa16006c0 (LWP 19376) exited]
[Thread 0x7fffa2a006c0 (LWP 19375) exited]
[Thread 0x7fffa20006c0 (LWP 19374) exited]
[Thread 0x7fffa9c006c0 (LWP 19369) exited]
[Thread 0x7fffaa6006c0 (LWP 19358) exited]
[Thread 0x7fffd0e006c0 (LWP 19353) exited]
[Thread 0x7fffd18006c0 (LWP 19350) exited]
[Thread 0x7fffd22006c0 (LWP 19349) exited]
[Thread 0x7fffd2c006c0 (LWP 19348) exited]
[Thread 0x7fffe56006c0 (LWP 19346) exited]
[Thread 0x7fffed2006c0 (LWP 19345) exited]
[Thread 0x7fffe60006c0 (LWP 19344) exited]
[Thread 0x7fffef2006c0 (LWP 19326) exited]
[Thread 0x7ffff00006c0 (LWP 19325) exited]
[Thread 0x7ffff050d9c0 (LWP 19319) exited]
[Thread 0x7fff6a0006c0 (LWP 19386) exited]
[New process 19319]
[Inferior 1 (process 19319) exited with code 0377]
No stack.

I got "no stack" when trying to do a backtrace. Let me know what I can do to get more useful information, but for now from what I can see when the screen turns black it says something about the process exiting with error code 0377. I'm not sure what that error code represents though.

Here is the output from running it from the terminal:
[Detaching after vfork from child process 19401]

                                                                                          

                                                                                          
[New Thread 0x7fff68c006c0 (LWP 19404)]
[New Thread 0x7fffbb4006c0 (LWP 19405)]
[New Thread 0x7fffbaa006c0 (LWP 19406)]
[New Thread 0x7fffba0006c0 (LWP 19407)]
[New Thread 0x7fff732006c0 (LWP 19408)]
[New Thread 0x7fff728006c0 (LWP 19409)]
[New Thread 0x7fff61e006c0 (LWP 19410)]
[New Thread 0x7fff60a006c0 (LWP 19411)]
[New Thread 0x7fff27e006c0 (LWP 19412)]
[New Thread 0x7fff274006c0 (LWP 19413)]
[New Thread 0x7fff260006c0 (LWP 19414)]
[Thread 0x7fffba0006c0 (LWP 19407) exited]
[Thread 0x7fffbb4006c0 (LWP 19405) exited]
[Thread 0x7fffbaa006c0 (LWP 19406) exited]
[Thread 0x7fffab0006c0 (LWP 19356) exited]
[Thread 0x7fffac4006c0 (LWP 19354) exited]
[Thread 0x7fffaba006c0 (LWP 19355) exited]
[Thread 0x7fff61e006c0 (LWP 19410) exited]
[Thread 0x7fff732006c0 (LWP 19408) exited]
[Thread 0x7fff728006c0 (LWP 19409) exited]
[Thread 0x7fff274006c0 (LWP 19413) exited]
[Thread 0x7fff60a006c0 (LWP 19411) exited]
[Thread 0x7fff27e006c0 (LWP 19412) exited]
[Thread 0x7fffa34006c0 (LWP 19368) exited]
[Thread 0x7fffa3e006c0 (LWP 19367) exited]
[Thread 0x7fffa92006c0 (LWP 19365) exited]
[Thread 0x7fffee8006c0 (LWP 19327) exited]
[Thread 0x7fffc5e006c0 (LWP 19393) exited]
[Thread 0x7fff260006c0 (LWP 19414) exited]
[Thread 0x7fff68c006c0 (LWP 19404) exited]
[Thread 0x7fffbbe006c0 (LWP 19398) exited]
[Thread 0x7fffc7a006c0 (LWP 19392) exited]
[Thread 0x7fff696006c0 (LWP 19387) exited]
[Thread 0x7fff6aa006c0 (LWP 19385) exited]
[Thread 0x7fff7cc006c0 (LWP 19384) exited]
[Thread 0x7fff7d6006c0 (LWP 19383) exited]
[Thread 0x7fff7e0006c0 (LWP 19382) exited]
[Thread 0x7fff7ea006c0 (LWP 19381) exited]
[Thread 0x7fff7f4006c0 (LWP 19380) exited]
[Thread 0x7fff7fe006c0 (LWP 19379) exited]
[Thread 0x7fff892006c0 (LWP 19378) exited]
[Thread 0x7fff89c006c0 (LWP 19377) exited]
[Thread 0x7fffa16006c0 (LWP 19376) exited]
[Thread 0x7fffa2a006c0 (LWP 19375) exited]
[Thread 0x7fffa20006c0 (LWP 19374) exited]
[Thread 0x7fffa9c006c0 (LWP 19369) exited]
[Thread 0x7fffaa6006c0 (LWP 19358) exited]
[Thread 0x7fffd0e006c0 (LWP 19353) exited]
[Thread 0x7fffd18006c0 (LWP 19350) exited]
[Thread 0x7fffd22006c0 (LWP 19349) exited]
[Thread 0x7fffd2c006c0 (LWP 19348) exited]
[Thread 0x7fffe56006c0 (LWP 19346) exited]
[Thread 0x7fffed2006c0 (LWP 19345) exited]
[Thread 0x7fffe60006c0 (LWP 19344) exited]
[Thread 0x7fffef2006c0 (LWP 19326) exited]
[Thread 0x7ffff00006c0 (LWP 19325) exited]
[Thread 0x7ffff050d9c0 (LWP 19319) exited]
[Thread 0x7fff6a0006c0 (LWP 19386) exited]
[New process 19319]
[Inferior 1 (process 19319) exited with code 0377]
No stack.
Comment 1 Dashon 2024-03-04 16:58:02 UTC
KPackageStructure of KPluginMetaData(pluginId:"P-Connor.PlasmaDrawer", fileName: "/home/d-air1/.local/share/plasma/plasmoids/P-Connor.PlasmaDrawer/metadata.json") does not match requested format "Plasma/Applet"
KPackageStructure of KPluginMetaData(pluginId:"com.github.prayag2.controlcentre", fileName: "/home/d-air1/.local/share/plasma/plasmoids/com.github.prayag2.controlcentre/metadata.json") does not match requested format "Plasma/Applet"
KPackageStructure of KPluginMetaData(pluginId:"org.kde.plasma.betterkicker", fileName: "/home/d-air1/.local/share/plasma/plasmoids/org.kde.plasma.betterkicker/metadata.json") does not match requested format "Plasma/Applet"
KPackageStructure of KPluginMetaData(pluginId:"org.kde.plasma.splitdigitalclock", fileName: "/home/d-air1/.local/share/plasma/plasmoids/org.kde.plasma.splitdigitalclock/metadata.json") does not match requested format "Plasma/Applet"
KPackageStructure of KPluginMetaData(pluginId:"org.kde.plasma.betterinlineclock", fileName: "/home/d-air1/.local/share/plasma/plasmoids/org.kde.plasma.betterinlineclock/metadata.json") does not match requested format "Plasma/Applet"
KPackageStructure of KPluginMetaData(pluginId:"org.kde.plasma.kweather_1x4", fileName: "/usr/share/plasma/plasmoids/org.kde.plasma.kweather_1x4/metadata.json") doesnot match requested format "Plasma/Applet"
KPackageStructure of KPluginMetaData(pluginId:"org.kde.merkuro.contact", fileName: "/usr/share/plasma/plasmoids/org.kde.merkuro.contact/metadata.json") does not match requested format "Plasma/Applet"
KPackageStructure of KPluginMetaData(pluginId:"org.kde.plasma.kclock_1x2", fileName: "/usr/share/plasma/plasmoids/org.kde.plasma.kclock_1x2/metadata.json") does notmatch requested format "Plasma/Applet"
kf.coreaddons: The plugin "/usr/lib/qt6/plugins/plasma/applets/plasma_applet_kweather_1x4.so" explicitly states an Id in the embedded metadata, which is different from the one derived from the filename The Id field from the KPlugin object in the metadata should be removed
kf.plasma.quick: Applet preload policy set to 1
file:///usr/share/plasma/plasmoids/org.kde.desktopcontainment/contents/ui/main.qml:196:25: QML FolderViewDropArea (parent or ancestor of QQuickLayoutAttached): Binding loop detected for property "minimumWidth"
qt.qml.typeresolution.cycle: Cyclic dependency detected between "qrc:/qt/qml/org/kde/desktop/private/TextFieldContextMenu.qml" and "qrc:/qt/qml/org/kde/desktop/MenuItem.qml"
file:///usr/share/plasma/plasmoids/org.kde.desktopcontainment/contents/ui/main.qml:196:25: QML FolderViewDropArea (parent or ancestor of QQuickLayoutAttached): Binding loop detected for property "minimumWidth"
The cached device pixel ratio value was stale on window expose.  Please file a QTBUG which explains how to reproduce.
file:///usr/share/plasma/plasmoids/org.kde.plasma.private.systemtray/contents/ui/main.qml:162:21: QML KSortFilterProxyModel: Binding loop detected for property "sourceModel"
file:///usr/share/plasma/plasmoids/org.kde.plasma.private.systemtray/contents/ui/main.qml:162:21: QML KSortFilterProxyModel: Binding loop detected for property "sourceModel"
qt.qml.typeresolution.cycle: Cyclic dependency detected between "file:///usr/share/plasma/plasmoids/org.kde.plasma.notifications/contents/ui/global/Globals.qml" and"file:///usr/share/plasma/plasmoids/org.kde.plasma.notifications/contents/ui/ThumbnailStrip.qml"
qt.qml.typeresolution.cycle: Cyclic dependency detected between "file:///usr/share/plasma/plasmoids/org.kde.plasma.notifications/contents/ui/global/Globals.qml" and"file:///usr/share/plasma/plasmoids/org.kde.plasma.notifications/contents/ui/NotificationHeader.qml"
qml: SystemTray ItemLoader: Invalid state, cannot determine source!
qt.dbus.integration: Could not connect "org.cups.cupsd.Notifier" to PrinterFinishingsChanged(QString, QString, QString, uint, QString, bool) :
QFont::setPointSizeF: Point size <= 0 (0.000000), must be greater than 0
The cached device pixel ratio value was stale on window expose.  Please file a QTBUG which explains how to reproduce.
The cached device pixel ratio value was stale on window expose.  Please file a QTBUG which explains how to reproduce.
The cached device pixel ratio value was stale on window expose.  Please file a QTBUG which explains how to reproduce.
file:///usr/share/plasma/plasmoids/org.kde.desktopcontainment/contents/ui/FolderItemDelegate.qml:237:17: Unable to assign [undefined] to bool
kde_screen_edge_manager_v1@182: error 1: surface must have layer_surface role
qt.qpa.wayland: Could not create EGL surface (EGL error 0x3003)

qt.qpa.wayland: Could not create EGL surface (EGL error 0x3003)

The Wayland connection experienced a fatal error: Protocol error
Comment 2 Dashon 2024-03-04 16:58:46 UTC
Sorry I just posted the terminal output. Accidentally copied and pasted the gdb output twice in initial post.
Comment 3 Dashon 2024-03-05 04:59:48 UTC
The issue also occurs when creating a virtual monitor with obs and then removing it.
Comment 4 Nate Graham 2024-03-05 20:20:51 UTC
If it's not crashing, it's possible it's simply quitting due to a Wayland protocol error. And in fact the log does seem to indicate that:

> kde_screen_edge_manager_v1@182: error 1: surface must have layer_surface role
Comment 5 Vlad Zahorodnii 2024-03-05 22:05:51 UTC
kde_screen_edge_manager_v1@182: error 1: surface must have layer_surface role
qt.qpa.wayland: Could not create EGL surface (EGL error 0x3003)

is related. in order to reserve a screen edge (for example when using auto hide or dodge windows mode), the panel must have a valid surface role. for some reason, panel window initialization fails (Could not create EGL surface)
Comment 6 Vlad Zahorodnii 2024-03-05 22:06:37 UTC
#define EGL_BAD_ALLOC                     0x3003
Comment 7 Vlad Zahorodnii 2024-03-05 22:07:31 UTC
can you run plasmashell with WAYLAND_DEBUG=1 envvar and attach the output to this bug report please?
Comment 8 Dashon 2024-03-06 02:48:28 UTC
(In reply to Vlad Zahorodnii from comment #7)
> can you run plasmashell with WAYLAND_DEBUG=1 envvar and attach the output to
> this bug report please?

Yeah, I'll do that and report back.
Comment 9 Dashon 2024-03-06 05:52:05 UTC
Created attachment 166466 [details]
terminal output with WAYLAND_DEBUG=1
Comment 10 Bug Janitor Service 2024-03-07 14:27:47 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/4015
Comment 11 Vlad Zahorodnii 2024-03-07 16:13:54 UTC
Git commit 472c5790b88cfeaa0d2fece73088d1203ac18da9 by Vlad Zahorodnii.
Committed on 07/03/2024 at 15:56.
Pushed by vladz into branch 'master'.

shell: Avoid reserving a screen edge if no surface role has been created yet

Check QWindow::isExposed() as in other places. If the surface role object
has been created, isExposed() will return true.

M  +2    -1    shell/autohidescreenedge.cpp

https://invent.kde.org/plasma/plasma-workspace/-/commit/472c5790b88cfeaa0d2fece73088d1203ac18da9
Comment 12 Vlad Zahorodnii 2024-03-07 17:22:38 UTC
Git commit 083b346d58d770b7ef9794bea1e88e75669d1bd6 by Vlad Zahorodnii.
Committed on 07/03/2024 at 17:07.
Pushed by vladz into branch 'Plasma/6.0'.

shell: Avoid reserving a screen edge if no surface role has been created yet

Check QWindow::isExposed() as in other places. If the surface role object
has been created, isExposed() will return true.


(cherry picked from commit 472c5790b88cfeaa0d2fece73088d1203ac18da9)

M  +2    -1    shell/autohidescreenedge.cpp

https://invent.kde.org/plasma/plasma-workspace/-/commit/083b346d58d770b7ef9794bea1e88e75669d1bd6
Comment 13 Dashon 2024-03-13 17:41:53 UTC
Just updated to 6.0.2 and can confirm that this fixes the issue. Thanks alot for all your work.