Bug 492273

Summary: Assertion fail on X11 after connecting external monitor in "switch to external" mode
Product: [Plasma] plasmashell Reporter: Helga <okitain>
Component: generic-crashAssignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED DUPLICATE    
Severity: crash CC: duha.bugs
Priority: NOR    
Version: 6.1.4   
Target Milestone: 1.0   
Platform: Neon   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: Full backtrace

Description Helga 2024-08-27 14:53:39 UTC
Qt Version: 6.7.2
Frameworks Version: 6.5.0
Operating System: Linux 6.8.0-40-generic x86_64
Windowing System: X11
Distribution: KDE neon 6.1
DrKonqi: 6.1.4 [CoredumpBackend]

Plasmashell SIGABRTs after connecting an external monitor. This might be an issue specific to the monitor mode where desktop switches to external monitor while turning the internal one off. Might be related to: https://bugs.kde.org/show_bug.cgi?id=484687

Relevant journalctl assert tidbit:

plasmashell[53747]: ASSERT failure in void ScreenPool::handleScreenRemoved(QScreen*): "ScreenPool ( 0x579eb108ada0 ) Internal state:
                                              Screen Order:         QList(QScreen(0x711ce8082dd0, name="eDP-1")) 
                                              "Fake" screens:         QSet() 
                                              Redundant screens covered by other ones:         QHash() 
                                              All screens, ordered by size:         QList(QScreen(0x711ce8082dd0, name="eDP-1")) 
                                              All screen that QGuiApplication knows:         QList(QScreen(0x711ce8082dd0, name="eDP-1")) 
                                              Current screen: QScreen(0x711ce800b000, name=":0.0") ", file ./shell/screenpool.cpp, line 261

Relevant bit from the crash backtrace: 
Thread 1 (Thread 0x711cf7cd4ac0 (LWP 53747)):
[KCrash Handler]
#6  __pthread_kill_implementation (no_tid=0, signo=6, threadid=124369230449344) at ./nptl/pthread_kill.c:44
#7  __pthread_kill_internal (signo=6, threadid=124369230449344) at ./nptl/pthread_kill.c:78
#8  __GI___pthread_kill (threadid=124369230449344, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
#9  0x0000711cfd042476 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#10 0x0000711cfd0287f3 in __GI_abort () at ./stdlib/abort.c:79
#11 0x0000711cfdcfdbca in qAbort () at ./src/corelib/global/qglobal.cpp:161
#12 0x0000711cfdcf875a in qt_message_fatal<QString&> (message=..., context=...) at ./src/corelib/global/qlogging.cpp:2025
#13 qt_message(QtMsgType, const QMessageLogContext &, const char *, typedef __va_list_tag __va_list_tag *) (msgType=msgType@entry=QtFatalMsg, context=..., msg=<optimized out>, ap=ap@entry=0x7ffe03169510) at ./src/corelib/global/qlogging.cpp:374
#14 0x0000711cfdcfe56d in QMessageLogger::fatal (this=<optimized out>, msg=<optimized out>) at ./src/corelib/global/qlogging.cpp:889
#15 0x0000711cfdcc2ce2 in qt_assert_x (where=where@entry=0x579eafb66570 "void ScreenPool::handleScreenRemoved(QScreen*)", what=<optimized out>, file=file@entry=0x579eafb6670f "./shell/screenpool.cpp", line=line@entry=261) at ./src/corelib/global/qassert.cpp:77
#16 0x0000579eafaad54b in ScreenPool::handleScreenRemoved (this=<optimized out>, screen=<optimized out>) at ./shell/screenpool.cpp:261
Comment 1 Helga 2024-08-27 14:57:26 UTC
Created attachment 173004 [details]
Full backtrace

I can't paste the backtrace into a comment, so it's attached instead
Comment 2 duha.bugs 2024-08-27 18:46:07 UTC

*** This bug has been marked as a duplicate of bug 484687 ***