Bug 447936

Summary: X11: turning the monitor off/on, causes the panel to disappear
Product: [Plasma] plasmashell Reporter: Ahmad Samir <a.samirh78>
Component: generalAssignee: David Edmundson <kde>
Status: RESOLVED FIXED    
Severity: normal CC: ahpatent, geminiportkey, kustodian, mamoruessu, nate, nortexoid, notmart, plasma-bugs, roman
Priority: VHI Keywords: regression
Version: master   
Target Milestone: 1.0   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In: 5.24

Description Ahmad Samir 2022-01-04 14:18:33 UTC
This is was a recent git master snapshot of plasma; note that with this setup I only have one monitor.

Here is the relevant part of the log:

Jan 04 15:15:54 localhost systemd[15687]: Started sleep.
Jan 04 15:29:55 localhost plasmashell[15829]: org.kde.plasma.notifications: Notification to send to backend contains invalid XML:  "Invalid XML name." line 1 col 33
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper: RRNotify_OutputProperty (ignored)
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         Timestamp:  30945254
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         Output:  69
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         Property:  EDIDleteA
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         State (newValue, Deleted):  1
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper: RRNotify_OutputProperty (ignored)
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         Timestamp:  30945254
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         Output:  69
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         Property:  EDID
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         State (newValue, Deleted):  1
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper: RRNotify_OutputChange
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         Timestamp:  24129740
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         Output:  69
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         CRTC:  62
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         Mode:  71
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         Rotation:  "Rotate_0"
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         Connection:  "Disconnected"
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         Subpixel Order:  0
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper: RRScreenChangeNotify
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         Timestamp:  24129740
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         Config_timestamp:  30945447
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         Window: 12582917
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         Root: 1485
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         Rotation:  "Rotate_0"
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         Size ID: 65535
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         Size:  3840 2160
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         SizeMM:  508 285
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper: RRNotify_OutputChange
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         Timestamp:  24129740
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         Output:  69
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         CRTC:  62
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         Mode:  71
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         Rotation:  "Rotate_0"
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         Connection:  "Disconnected"
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         Subpixel Order:  0
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xrandr: XRandROutput 69 update 
                                                                  m_connected: 0 
                                                                  m_crtc XRandRCrtc(0x55c542069e60) 
                                                                  CRTC: 62 
                                                                  MODE: 71 
                                                                  Connection: 1 
                                                                  Primary: true
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xrandr: Output 69 : connected = false , enabled = true
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xrandr: XRandROutput 69 update 
                                                                  m_connected: 1 
                                                                  m_crtc XRandRCrtc(0x55c542069e60) 
                                                                  CRTC: 62 
                                                                  MODE: 71 
                                                                  Connection: 1 
                                                                  Primary: true
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xrandr: Output 69 : connected = false , enabled = true
Jan 04 16:08:45 localhost plasmashell[15829]: requesting unexisting screen -1
Jan 04 16:08:45 localhost plasmashell[15829]: requesting unexisting screen -1
Jan 04 16:08:45 localhost plasmashell[15829]: requesting unexisting screen -1
Jan 04 16:08:45 localhost plasmashell[15829]: requesting unexisting screen -1
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper: RRNotify_OutputChange
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         Timestamp:  24129740
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         Output:  69
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         CRTC:  62
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         Mode:  71
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         Rotation:  "Rotate_0"
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         Connection:  "Connected"
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         Subpixel Order:  0
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper: RRScreenChangeNotify
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         Timestamp:  24129740
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         Config_timestamp:  30945515
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         Window: 12582917
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         Root: 1485
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         Rotation:  "Rotate_0"
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         Size ID: 0
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         Size:  3840 2160
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         SizeMM:  508 285
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper: RRNotify_OutputChange
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         Timestamp:  24129740
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         Output:  69
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         CRTC:  62
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         Mode:  71
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         Rotation:  "Rotate_0"
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         Connection:  "Connected"
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xcb.helper:         Subpixel Order:  0
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xrandr: XRandROutput 69 update 
                                                                  m_connected: 1 
                                                                  m_crtc XRandRCrtc(0x55c542069e60) 
                                                                  CRTC: 62 
                                                                  MODE: 71 
                                                                  Connection: 0 
                                                                  Primary: true
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xrandr: Connected output 69 to CRTC 62
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xrandr: Output 69 : connected = true , enabled = true
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xrandr: XRandROutput 69 update 
                                                                  m_connected: 0 
                                                                  m_crtc XRandRCrtc(0x55c542069e60) 
                                                                  CRTC: 62 
                                                                  MODE: 71 
                                                                  Connection: 0 
                                                                  Primary: true
Jan 04 16:08:45 localhost kscreen_backend_launcher[15828]: kscreen.xrandr: Output 69 : connected = true , enabled = true
Jan 04 16:08:45 localhost plasmashell[15829]: requesting unexisting screen 0
Jan 04 16:08:45 localhost plasmashell[15829]: kde.plasmashell: could not find primary screen ":0.0"
Jan 04 16:08:45 localhost plasmashell[15829]: requesting unexisting screen 0
Jan 04 16:08:45 localhost plasmashell[15829]: kde.plasmashell: could not find primary screen ":0.0"
Jan 04 16:08:45 localhost plasmashell[15829]: requesting unexisting screen 0
Jan 04 16:08:45 localhost plasmashell[15829]: kde.plasmashell: could not find primary screen ":0.0"
Jan 04 16:08:45 localhost plasmashell[15829]: requesting unexisting screen 0
Jan 04 16:08:45 localhost plasmashell[15829]: kde.plasmashell: could not find primary screen ":0.0"
Jan 04 16:08:45 localhost plasmashell[15829]: requesting unexisting screen 0
<... repeats many times>
Jan 04 16:08:45 localhost kwin_x11[15808]: QMetaProperty::read: Unable to handle unregistered datatype 'KWin::SessionState' for property 'KWin::EffectsHandlerImplX11::sessionState'
Jan 04 16:08:45 localhost plasmashell[15829]: requesting unexisting screen 0
Jan 04 16:08:45 localhost plasmashell[15829]: kde.plasmashell: could not find primary screen ":0.0"
Jan 04 16:08:45 localhost plasmashell[15829]: requesting unexisting screen 0

Jan 04 16:08:46 localhost kscreen_backend_launcher[15828]: kscreen.xrandr: Emitting configChanged()
Comment 1 Ahmad Samir 2022-01-06 15:42:11 UTC
I forgot to say that I have to restart plasmashell to get the panel back.
Comment 2 Marco Martin 2022-01-07 13:35:41 UTC
I'm trying to reproduce it with master but without success so far.

how is the setup?
is it a desktop machine? (ie not laptop) hdmi connection? is the only connection the video card has?
what monitor/video card is it?
Comment 3 Marco Martin 2022-01-07 14:28:44 UTC
is the desktop actually "working"? ie is it drawing/refreshing and does the right mouse button menu work?

the closest i got it to reproduce is plasma crashing but the compositor still painting the last known state of the desktop, so it"appears" only the panel is gone, but plasma isn't running anymore
Comment 4 Ahmad Samir 2022-01-07 14:41:45 UTC
Desktop machine
DisplayPort connection
Single monitor
nvidia GTX770, nouveau kernel module and modesetting driver
Monitor is a 4K Samsung

The rest of the session is OK, and the plasmashell process is running in the background but no panel; you mean right click on the desktop? (because right clicking in any app is OK).
Comment 5 Ahmad Samir 2022-01-07 14:42:56 UTC
I'll test with a new user account, could be something broken in my current user account (given that no one else is seeing this issue :)).
Comment 6 Marco Martin 2022-01-07 14:55:34 UTC
ok, managed to perfectly reproduce, nvm
Comment 7 Ahmad Samir 2022-01-07 15:06:28 UTC
Tested with a new user account, the issue seems to happen only if I use `xset dpms force off` to turn the monitor off (I have a global shortcut that runs that command).
Comment 8 Bug Janitor Service 2022-01-07 15:48:22 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/1339
Comment 9 Marco Martin 2022-01-10 09:22:58 UTC
Git commit 9c04d5623687a833ed3b906451ce205b8723cedd by Marco Martin.
Committed on 10/01/2022 at 09:22.
Pushed by mart into branch 'master'.

Delay setPrimaryOutputName on X11 nativeeventfilter

if we do immediately setPrimaryOutputName, the name is still :0.0
because the app didn't have time to react yet (since here we are in the event filter,
we are just before that by definition) so the output name can still be wrong.

when we go from no outputs to one, at this point the name of the one QScreen
instane is still wrong :0.0 which will be renamed right after.

M  +4    -1    shell/primaryoutputwatcher.cpp

https://invent.kde.org/plasma/plasma-workspace/commit/9c04d5623687a833ed3b906451ce205b8723cedd
Comment 10 Nate Graham 2022-01-12 01:47:30 UTC
*** Bug 447728 has been marked as a duplicate of this bug. ***
Comment 11 Nate Graham 2022-01-12 17:41:36 UTC
*** Bug 446078 has been marked as a duplicate of this bug. ***
Comment 12 Michael D 2022-01-21 22:40:25 UTC
I just encountered what seems to be this bug but the desktop wallpaper changes to the one that would display on a secondary display. So I think the panel doesn't show because it thinks my primary laptop display is a secondary display instead, on which no panel is configured.
Comment 13 Michael D 2022-01-21 22:41:02 UTC
Oh whoops, I meant to say that this only happens for me on *wayland*, not X11.
Comment 14 ahpatent 2022-03-03 15:35:22 UTC
I have two machines (one Windows and one Linux) connected to two monitors using displayport connections through a dual-channel KVM switch. All worked perfectly until updating to 5.24, and I now this problem on Plasma/Xorg when either (a) switching monitors off and on again, or (b) switching away from my machine and back again using the KVM. So, if I switch Linux->Win->Linux, the panel will have vanished, and plasmashell is gone and has to be restarted.

The Linux machine dual boots OpenSUSE Tumbleweed and Manjaro. Tumbleweed upgraded to 5.24 first and Manjaro about a week later, and the same happened on both OSs upon upgrade. The machine is Intel i7/NVidia GeForce GTX 1660.

When I switch away and back, with plasmashell running from konsole, I get:

trying to show an empty dialog
trying to show an empty dialog
trying to show an empty dialog
trying to show an empty dialog
requesting unexisting screen 2
kde.plasmashell: could not find primary screen "DP-0"
requesting unexisting screen 2
kde.plasmashell: could not find primary screen "DP-0"
requesting unexisting screen -1
requesting unexisting screen -1
file:///usr/share/plasma/wallpapers/org.kde.image/contents/ui/main.qml:63: TypeError: Cannot read property 'pluginName' of null
file:///usr/share/plasma/wallpapers/org.kde.image/contents/ui/main.qml:65: TypeError: Cannot read property 'configuration' of null
file:///usr/share/plasma/wallpapers/org.kde.image/contents/ui/main.qml:66: TypeError: Cannot read property 'configuration' of null
file:///usr/share/plasma/wallpapers/org.kde.image/contents/ui/main.qml:67: TypeError: Cannot read property 'configuration' of null
file:///usr/share/plasma/wallpapers/org.kde.image/contents/ui/main.qml:68: TypeError: Cannot read property 'configuration' of null
file:///usr/share/plasma/wallpapers/org.kde.image/contents/ui/main.qml:69: TypeError: Cannot read property 'configuration' of null
file:///usr/share/plasma/wallpapers/org.kde.image/contents/ui/main.qml:20: TypeError: Cannot read property 'configuration' of null
file:///usr/share/plasma/wallpapers/org.kde.image/contents/ui/main.qml:21: TypeError: Cannot read property 'configuration' of null
file:///usr/share/plasma/wallpapers/org.kde.image/contents/ui/main.qml:22: TypeError: Cannot read property 'configuration' of null
file:///usr/share/plasma/wallpapers/org.kde.image/contents/ui/main.qml:23: TypeError: Cannot read property 'configuration' of null
requesting unexisting screen 0
requesting unexisting screen 0
requesting unexisting screen 0
requesting unexisting screen 0
requesting unexisting screen 0
requesting unexisting screen 0
requesting unexisting screen 0
requesting unexisting screen 0
requesting unexisting screen 0
requesting unexisting screen 0
requesting unexisting screen 0
requesting unexisting screen 0
requesting unexisting screen 0
requesting unexisting screen 0
requesting unexisting screen 0
requesting unexisting screen 0
requesting unexisting screen 0
requesting unexisting screen 0
trying to show an empty dialog
file:///usr/share/plasma/shells/org.kde.plasma.desktop/contents/views/Desktop.qml:118:19: QML Loader: Binding loop detected for property "height"
file:///usr/share/plasma/shells/org.kde.plasma.desktop/contents/views/Desktop.qml:118:19: QML Loader: Binding loop detected for property "height"
requesting unexisting screen 0
requesting unexisting screen 0
requesting unexisting screen 0
requesting unexisting screen 0
requesting unexisting screen 2
requesting unexisting screen 2
requesting unexisting screen 2
requesting unexisting screen 2
requesting unexisting screen 2
requesting unexisting screen 2
requesting unexisting screen 2
requesting unexisting screen 2
requesting unexisting screen 2
requesting unexisting screen 2
requesting unexisting screen 2
requesting unexisting screen 2
requesting unexisting screen 2
requesting unexisting screen 2
requesting unexisting screen 2
requesting unexisting screen 2
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
requesting unexisting screen 0
requesting unexisting screen 0
requesting unexisting screen 0
file:///usr/share/plasma/wallpapers/org.kde.image/contents/ui/main.qml:63: TypeError: Cannot read property 'pluginName' of null
file:///usr/share/plasma/wallpapers/org.kde.image/contents/ui/main.qml:65: TypeError: Cannot read property 'configuration' of null
file:///usr/share/plasma/wallpapers/org.kde.image/contents/ui/main.qml:66: TypeError: Cannot read property 'configuration' of null
file:///usr/share/plasma/wallpapers/org.kde.image/contents/ui/main.qml:67: TypeError: Cannot read property 'configuration' of null
file:///usr/share/plasma/wallpapers/org.kde.image/contents/ui/main.qml:68: TypeError: Cannot read property 'configuration' of null
file:///usr/share/plasma/wallpapers/org.kde.image/contents/ui/main.qml:69: TypeError: Cannot read property 'configuration' of null
file:///usr/share/plasma/wallpapers/org.kde.image/contents/ui/main.qml:20: TypeError: Cannot read property 'configuration' of null
file:///usr/share/plasma/wallpapers/org.kde.image/contents/ui/main.qml:21: TypeError: Cannot read property 'configuration' of null
file:///usr/share/plasma/wallpapers/org.kde.image/contents/ui/main.qml:22: TypeError: Cannot read property 'configuration' of null
file:///usr/share/plasma/wallpapers/org.kde.image/contents/ui/main.qml:23: TypeError: Cannot read property 'configuration' of null
org.kde.plasma.pulseaudio: No object for name "alsa_output.pci-0000_00_1f.3.analog-stereo.monitor"
requesting unexisting screen 0
requesting unexisting screen 0
requesting unexisting screen 2
requesting unexisting screen 2
trying to show an empty dialog
file:///usr/share/plasma/shells/org.kde.plasma.desktop/contents/views/Desktop.qml:118:19: QML Loader: Binding loop detected for property "height"
file:///usr/share/plasma/shells/org.kde.plasma.desktop/contents/views/Desktop.qml:118:19: QML Loader: Binding loop detected for property "height"
requesting unexisting screen 0
kde.plasmashell: could not find primary screen ":0.0"
requesting unexisting screen 0
kde.plasmashell: could not find primary screen ":0.0"
... [ repeated lots] ...
requesting unexisting screen 0
kde.plasmashell: could not find primary screen ":0.0"
requesting unexisting screen 0
requesting unexisting screen 0
requesting unexisting screen 0
requesting unexisting screen 0
org.kde.plasma.pulseaudio: No object for name "alsa_output.pci-0000_00_1f.3.analog-stereo.monitor"
requesting unexisting screen 0
[... repeated lots ... ]
requesting unexisting screen 0
Comment 15 Nate Graham 2022-03-03 21:20:48 UTC
That particular issue has been fixed in Plasma 5.24.3.
Comment 16 roworu 2022-05-11 06:39:28 UTC
Hey! I faced exact same issue too, but on version 5.24.5 using nvidia drivers 510.68.02-1 and xorg-server 21.1.3-6 
I'm new here so, please, advice, if there is any additional info I could provide.
Comment 17 Nate Graham 2022-05-11 14:34:14 UTC
It's likely a subtly different one; can you file a new bug report? Thanks!