Bug 490746

Summary: plasmashell doesn't start on login, ASSERT failure in void ScreenPool::screenInvariants()
Product: [Plasma] plasmashell Reporter: Piotr Keplicz <keplicz>
Component: Startup processAssignee: Plasma Bugs List <plasma-bugs>
Status: ASSIGNED ---    
Severity: normal CC: kde, nate, qydwhotmail
Priority: NOR    
Version: 6.1.3   
Target Milestone: 1.0   
Platform: Neon   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: backtrace

Description Piotr Keplicz 2024-07-24 09:02:31 UTC
SUMMARY
plasmashell fails to start on a laptop with lid closed and an external monitor attached.


STEPS TO REPRODUCE
1. Attach a DP monitor to a laptop, close the lid.
2. Reboot.
3. Login with SDDM.

OBSERVED RESULT
Session starts properly, applications are restored, but background is black and the panel doesn't appear. 
I can then start plasmashell with krunner.

$ ps -C plasmashell
    PID TTY          TIME CMD
$ journalctl -b --user /usr/bin/plasmashell 
lip 24 10:52:18 beton plasmashell[3503]: ASSERT failure in void ScreenPool::screenInvariants(): "ScreenPool ( 0x566d39462ff0 ) Internal state:
                                          Screen Order:         QList(QScreen(0x566d3914d400, name="DP-1")) 
                                          "Fake" screens:         QSet() 
                                          Redundant screens covered by other ones:         QHash() 
                                          All screens, ordered by size:         QList(QScreen(0x566d3914d400, name="DP-1")) 
                                          All screen that QGuiApplication knows:         QList(QScreen(0x566d3914d390, name="eDP-1"), QScreen(0x566d3914d400, name="DP-1")) 
                                          ", file ./shell/screenpool.cpp, line 375
lip 24 10:52:19 beton plasmashell[3504]: ASSERT failure in void ScreenPool::screenInvariants(): "ScreenPool ( 0x5c898601bb30 ) Internal state:
                                          Screen Order:         QList(QScreen(0x5c8985d23400, name="DP-1")) 
                                          "Fake" screens:         QSet() 
                                          Redundant screens covered by other ones:         QHash() 
                                          All screens, ordered by size:         QList(QScreen(0x5c8985d23400, name="DP-1")) 
                                          All screen that QGuiApplication knows:         QList(QScreen(0x5c8985d23390, name="eDP-1"), QScreen(0x5c8985d23400, name="DP-1")) 
                                          ", file ./shell/screenpool.cpp, line 375



EXPECTED RESULT
plasmashell starts.

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: Neon 6.0
KDE Plasma Version: 6.1.3
KDE Frameworks Version: 6.4.0
Qt Version: 6.7.0

ADDITIONAL INFORMATION

$ xrandr -q
Screen 0: minimum 320 x 200, current 3440 x 1440, maximum 16384 x 16384
eDP-1 connected (normal left inverted right x axis y axis)
   1920x1080     60.00 +  60.00  
   1680x1050     60.00  
   1400x1050     60.00  
   1600x900      60.00  
   1280x1024     60.00  
   1400x900      60.00  
   1280x960      60.00  
   1440x810      60.00  
   1368x768      60.00  
   1280x800      60.00  
   1280x720      60.00  
   1024x768      60.00  
   960x720       60.00  
   928x696       60.00  
   896x672       60.00  
   1024x576      60.00  
   960x600       60.00  
   960x540       60.00  
   800x600       60.00  
   840x525       60.00  
   864x486       60.00  
   700x525       60.00  
   800x450       60.00  
   640x512       60.00  
   700x450       60.00  
   640x480       60.00  
   720x405       60.00  
   684x384       60.00  
   640x360       60.00  
   512x384       60.00  
   512x288       60.00  
   480x270       60.00  
   400x300       60.00  
   432x243       60.00  
   320x240       60.00  
   360x202       60.00  
   320x180       60.00  
DP-1 connected primary 3440x1440+0+0 (normal left inverted right x axis y axis) 800mm x 345mm
   3440x1440     75.05*+  59.97  
   2560x1440     59.95  
   1720x1440     75.00  
   2048x1152     60.00  
   1920x1200     59.88  
   1920x1080     60.00    50.00    59.94  
   1920x1080i    60.00    50.00    59.94  
   1600x1200     60.00  
   1680x1050     59.95  
   1600x900      60.00  
   1280x1024     75.02    60.02  
   1280x800      59.81  
   1152x864      75.00  
   1280x720      60.00    59.94  
   1024x768      75.03    70.07    60.00  
   832x624       74.55  
   800x600       72.19    75.00    60.32    56.25  
   720x576       50.00  
   720x480       60.00    59.94  
   640x480       75.00    72.81    66.67    60.00    59.94  
   720x400       70.08  
HDMI-1 disconnected (normal left inverted right x axis y axis)
DP-2 disconnected (normal left inverted right x axis y axis)
HDMI-2 disconnected (normal left inverted right x axis y axis)
Comment 1 Nate Graham 2024-07-24 19:08:50 UTC

*** This bug has been marked as a duplicate of bug 464377 ***
Comment 2 Fushan Wen 2024-07-25 03:37:53 UTC
Do you have a backtrace?
Comment 3 Bug Janitor Service 2024-07-25 04:07:59 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/4553
Comment 4 Piotr Keplicz 2024-07-25 08:25:30 UTC
Created attachment 171972 [details]
backtrace
Comment 5 Fushan Wen 2024-07-26 01:29:59 UTC
As other people can't reproduce it, do you have any chance to test https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/4553 ?
Comment 6 Piotr Keplicz 2024-07-26 09:28:04 UTC
Is there a magic kdesrc-build command to rebuild plasmashell from this MR only? I've got all sorts of dependency errors trying to rebuild plasma-workspace, but maybe there's a simpler way for this package only.
Comment 7 Fushan Wen 2024-07-30 07:20:43 UTC
(In reply to Piotr Keplicz from comment #6)
> Is there a magic kdesrc-build command to rebuild plasmashell from this MR
> only? I've got all sorts of dependency errors trying to rebuild
> plasma-workspace, but maybe there's a simpler way for this package only.

I think you can just clone plasma-workspace and run cmake commands in the folder without kdesrc-build