Summary: | With only 1 screen, plasmashell crashed in ScreenPool::handleScreenAdded() on wakeup from sleep | ||
---|---|---|---|
Product: | [Plasma] plasmashell | Reporter: | Pawel <bednarczyk.pawel> |
Component: | generic-multiscreen | Assignee: | Plasma Bugs List <plasma-bugs> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | aleixpol, bednarczyk.pawel, nate, notmart, xaver.hugl |
Priority: | NOR | Keywords: | wayland |
Version: | 5.25.3 | ||
Target Milestone: | 1.0 | ||
Platform: | Other | ||
OS: | Linux | ||
See Also: | https://bugs.kde.org/show_bug.cgi?id=456385 | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: | gdb dump |
Thread 1 (Thread 0x7face7e1c340 (LWP 120470)): #0 __GI___pthread_sigmask (how=1, newmask=<optimized out>, oldmask=0x0) at pthread_sigmask.c:43 #1 0x00007facec03eadd in __GI___sigprocmask (how=<optimized out>, set=<optimized out>, oset=<optimized out>) at ../sysdeps/unix/sysv/linux/sigprocmask.c:25 #2 0x00007faceea2d1eb in KCrash::setCrashHandler (handler=handler@entry=0x0) at /usr/src/debug/kcrash-5.96.0/src/kcrash.cpp:415 #3 0x00007faceea2f85f in KCrash::defaultCrashHandler (sig=11) at /usr/src/debug/kcrash-5.96.0/src/kcrash.cpp:632 #4 <signal handler called> #5 PlasmaQuick::ContainmentView::containment (this=0x0) at /usr/src/debug/plasma-framework-5.96.0/src/plasmaquick/containmentview.cpp:256 #6 0x0000561b9c94da6f in ShellCorona::screenForContainment (this=0x561b9d26f600, containment=<optimized out>) at /usr/src/debug/plasma-workspace-5.25.3.1/shell/shellcorona.cpp:1951 #7 0x0000561b9c94b05a in ShellCorona::createContainmentForActivity (this=0x561b9d26f600, activity=..., screenNum=0) at /usr/src/debug/plasma-workspace-5.25.3.1/shell/shellcorona.cpp:1260 #8 0x0000561b9c941aa4 in ShellCorona::addOutput (this=0x561b9d26f600, screen=<optimized out>) at /usr/src/debug/plasma-workspace-5.25.3.1/shell/shellcorona.cpp:1202 #9 0x00007facecabd341 in QtPrivate::QSlotObjectBase::call (a=<optimized out>, r=<optimized out>, this=<optimized out>, this=<optimized out>, r=<optimized out>, a=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 #10 doActivate<false> (sender=0x561b9d2f5640, signal_index=3, argv=0x7ffc080afe40) at kernel/qobject.cpp:3886 #11 0x0000561b9c95cbca in ScreenPool::screenAdded (_t1=0x561b9d6a9de0, this=0x561b9d2f5640) at /usr/src/debug/build/shell/plasmashell_autogen/include/moc_screenpool.cpp:159 #12 ScreenPool::handleScreenAdded (this=0x561b9d2f5640, screen=<optimized out>) at /usr/src/debug/plasma-workspace-5.25.3.1/shell/screenpool.cpp:417 #13 0x00007facecabd341 in QtPrivate::QSlotObjectBase::call (a=<optimized out>, r=<optimized out>, this=<optimized out>, this=<optimized out>, r=<optimized out>, a=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 #14 doActivate<false> (sender=0x561b9d2f0950, signal_index=3, argv=0x7ffc080aff70) at kernel/qobject.cpp:3886 #15 0x0000561b9c93b42e in PrimaryOutputWatcher::primaryOutputNameChanged (_t2=..., _t1=..., this=0x561b9d2f0950) at /usr/src/debug/build/shell/plasmashell_autogen/EWIEGA46WW/moc_primaryoutputwatcher.cpp:136 #16 PrimaryOutputWatcher::setPrimaryOutputName (this=0x561b9d2f0950, newOutputName=...) at /usr/src/debug/plasma-workspace-5.25.3.1/shell/primaryoutputwatcher.cpp:76 #17 0x00007facecabd341 in QtPrivate::QSlotObjectBase::call (a=<optimized out>, r=<optimized out>, this=<optimized out>, this=<optimized out>, r=<optimized out>, a=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 #18 doActivate<false> (sender=0x7ffc080b0a60, signal_index=9, argv=0x7ffc080b0080) at kernel/qobject.cpp:3886 #19 0x00007facecf41087 in QGuiApplication::screenAdded (this=<optimized out>, _t1=<optimized out>) at .moc/moc_qguiapplication.cpp:389 #20 0x00007facea9848c9 in QtWaylandClient::QWaylandDisplay::handleScreenInitialized (this=0x561b9d250b00, screen=<optimized out>) at /usr/src/debug/qtwayland/src/client/qwaylanddisplay.cpp:460 #21 0x00007facea9914c4 in QtWaylandClient::QWaylandScreen::maybeInitialize (this=0x7facd0005c10) at /usr/src/debug/qtwayland/src/client/qwaylandscreen.cpp:108 #22 QtWaylandClient::QWaylandScreen::maybeInitialize (this=0x7facd0005c10) at /usr/src/debug/qtwayland/src/client/qwaylandscreen.cpp:99 #23 0x00007facee21c536 in ffi_call_unix64 () at ../src/x86/unix64.S:105 #24 0x00007facee219037 in ffi_call_int (cif=<optimized out>, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>, closure=<optimized out>) at ../src/x86/ffi64.c:672 #25 0x00007faceecae645 in wl_closure_invoke (closure=closure@entry=0x7facd80064d0, target=<optimized out>, target@entry=0x561b9d56e110, opcode=opcode@entry=2, data=<optimized out>, flags=1) at ../wayland-1.21.0/src/connection.c:1025 #26 0x00007faceecaee03 in dispatch_event (display=display@entry=0x561b9d254f90, queue=0x561b9d255060) at ../wayland-1.21.0/src/wayland-client.c:1595 #27 0x00007faceecaeffc in dispatch_queue (queue=0x561b9d255060, display=0x561b9d254f90) at ../wayland-1.21.0/src/wayland-client.c:1741 #28 wl_display_dispatch_queue_pending (display=0x561b9d254f90, queue=0x561b9d255060) at ../wayland-1.21.0/src/wayland-client.c:1983 #29 0x00007facea981c56 in QtWaylandClient::QWaylandDisplay::flushRequests (this=<optimized out>) at /usr/src/debug/qtwayland/src/client/qwaylanddisplay.cpp:253 #30 0x00007facecab0440 in QObject::event (this=0x561b9d250b00, e=0x7face0004e70) at kernel/qobject.cpp:1314 #31 0x00007faced778b3c in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x561b9d250b00, e=0x7face0004e70) at kernel/qapplication.cpp:3637 #32 0x00007faceca8cad8 in QCoreApplication::notifyInternal2 (receiver=0x561b9d250b00, event=0x7face0004e70) at kernel/qcoreapplication.cpp:1064 #33 0x00007faceca8d5e3 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x561b9d243f90) at kernel/qcoreapplication.cpp:1821 #34 0x00007facecad3548 in postEventSourceDispatch (s=0x561b9d26ca10) at kernel/qeventdispatcher_glib.cpp:277 #35 0x00007faceb06fc6b in g_main_dispatch (context=0x561b9d26de80) at ../glib/glib/gmain.c:3417 #36 g_main_context_dispatch (context=0x561b9d26de80) at ../glib/glib/gmain.c:4135 #37 0x00007faceb0c6001 in g_main_context_iterate.constprop.0 (context=context@entry=0x561b9d26de80, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4211 #38 0x00007faceb06d392 in g_main_context_iteration (context=0x561b9d26de80, may_block=1) at ../glib/glib/gmain.c:4276 #39 0x00007facecad732c in QEventDispatcherGlib::processEvents (this=0x561b9d2215a0, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #40 0x00007faceca8527c in QEventLoop::exec (this=0x7ffc080b08e0, flags=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69 #41 0x00007faceca8fda9 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #42 0x00007facecf3a092 in QGuiApplication::exec () at kernel/qguiapplication.cpp:1867 #43 0x00007faced776f4a in QApplication::exec () at kernel/qapplication.cpp:2829 #44 0x0000561b9c91c0e3 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/plasma-workspace-5.25.3.1/shell/main.cpp:240 How many screens do you have? hi Nate, Just 1. What I forgot to include is that weirdly, after I typed in my password, I got this unlock icon I had to click to log in. No password, just click unlock. (In reply to Pawel from comment #3) > hi Nate, > > Just 1. What I forgot to include is that weirdly, after I typed in my > password, I got this unlock icon I had to click to log in. No password, just > click unlock. and this was after I upgraded to 5.25.3.1 on Arch Thanks, seems like something is going wrong in the multiscreen code, as it's adding and removing screens in the backend when it shouldn't have to. I have the below entries in kwinrc: [DrmOutputs][1107ab8123][1107ab8123] Mode=2560x1440_143999 Scale=1 Transform=normal [DrmOutputs][782ea3ba-3e9f-564e-a0c4-9e88bde6aa7f][782ea3ba-3e9f-564e-a0c4-9e88bde6aa7f] Mode=2560x1440_143999 Scale=1 Transform=normal [DrmOutputs][b8e58b19-91aa-5dac-b0d0-99a4f6a1a60a][b8e58b19-91aa-5dac-b0d0-99a4f6a1a60a] Mode=2560x1440_143999 Scale=1 Transform=normal Is this expected considering I only have 1 monitor? I haven't had the crash since and I am not sure if I should be expecting the Unlock button on single screen set up. I see several on mine so maybe that's intentional. What's the output of `kscreen-doctor -o`? hi Nate, Output: 1 ASUSTek COMPUTER INC ASUS XG32VQR/93493 enabled connected primary DisplayPort Modes: 0:2560x1440@144*! 1:2560x1440@120 2:2560x1440@120 3:2560x1440@100 4:2560x1440@96 5:2560x1440@72 6:2560x1440@60 7:2560x1440@60 8:2560x1440@50 9:2560x1440@48 10:1920x1200@144 11:1920x1080@120 12:1920x1080@120 13:1920x1080@60 14:1920x1080@60 15:1920x1080@60 16:1920x1080@50 17:1600x1200@144 18:1680x1050@60 19:1280x1024@75 20:1280x1024@60 21:1440x900@60 22:1280x960@60 23:1280x800@144 24:1152x864@75 25:1280x720@120 26:1280x720@120 27:1280x720@60 28:1280x720@60 29:1280x720@60 30:1280x720@50 31:1440x576@50 32:1440x576@50 33:1024x768@75 34:1024x768@70 35:1024x768@60 36:1440x480@60 37:1440x480@60 38:1440x480@60 39:1440x480@60 40:800x600@75 41:800x600@72 42:800x600@60 43:800x600@56 44:720x576@50 45:720x576@50 46:720x480@60 47:720x480@60 48:720x480@60 49:720x480@60 50:640x480@75 51:640x480@73 52:640x480@67 53:640x480@60 54:640x480@60 55:640x480@60 56:720x400@70 57:1600x900@60 Geometry: 0,0 2560x1440 Scale: 1 Rotation: 1 Overscan: 0 Vrr: Automatic RgbRange: unknown primary That looks okay, thanks. The [DrmOutputs] sections in kwinrc are just a relic from older versions of KWin, they aren't relevant for this (or anything else, you can remove them if you want) the crashing piece of code in that BT still exists, even tough the views lifecycle within m_desktopViewForScreen changes significantly, so this may or may not still be valid. the code is for (auto it = m_desktopViewForScreen.constBegin(), end = m_desktopViewForScreen.constEnd(); it != end; ++it) { (arounf line 2167 now) (a dangling pointer in the m_desktopViewForScreen containmner) Needs to keep an eye open if a crash there still happens in 5.27 No new reports from Plasma 5.27 so far. Pawel, could you check to see if *this specific crash* is still an issue for you in Plasma 5.27.4 or newer? Thanks! Hi Nate, I have not had this specific crash for a long time. Hard to say when exactly this might have been fixed but I am happy to mark as resolved and reopen in the future if the crash reoccurs. Great, thanks so much for following up! |
Created attachment 150642 [details] gdb dump plasma shell crashed when I logged back in when the computer was woken up from sleep. dump with full debug symbols attached. running the below did not help - I had to restart the PC: plasmashell --replace </dev/null &>/dev/null & disown Operating System: Arch Linux KDE Plasma Version: 5.25.3 KDE Frameworks Version: 5.96.0 Qt Version: 5.15.5 Kernel Version: 5.18.11-arch1-1 (64-bit) Graphics Platform: Wayland Processors: 16 × AMD Ryzen 7 3700X 8-Core Processor Memory: 31.3 GiB of RAM Graphics Processor: AMD Radeon RX 6800 XT