OK this is partly my fault for running a crazy setup but it was bugging me to the point where I thought I would start investigating and make a post just in case anyone had seen anything like this before.
A quick description of my setup…
I have two Arc A580’s running 7 display port monitors (one on MST passthrough)
I have two issues I have which suddenly appeared on the 26th Feb are…
I can no longer login with all 7 monitors connected. The screen flashes multiple times then it drops back to the login screen. Unplugging one of the monitors resolves the issue and I can log in fine. Interestingly if I select X instead of Wayland I can login but then only one GPU works anyway so its the same as disconnecting the 7th monitor.
Even with only 6 screens connected I can no longer sleep the computer. When I wake it I am greeted by all black screens one of which has a stationary mouse cursor on it. It seems like some kind of hard lock as I cant even ctrl-alt-F# to get to a terminal. Nothing seems to work except hitting the power button.
I was just about to start investigating and I noticed my syslog appears to have quite a few instances of this:
2025-03-07T16:56:29.954165+00:00 Limo kernel: i915 0000:08:00.0: [drm] *ERROR* Atomic update failure on pipe B (start=631241 end=631242) time 659 us, min 1431, max 1439, scanline start 1385, end 1443
2025-03-07T16:56:30.071159+00:00 Limo kernel: i915 0000:08:00.0: [drm] *ERROR* Atomic update failure on pipe A (start=631748 end=631749) time 401 us, min 1093, max 1099, scanline start 1072, end 1100
However its currently functioning fine as I’m writing this post on it.
Let me plug in the 7th monitor (which will kick me out and see if theres anything else interesting in the logs).
Looks like this might be the forced logout on 7th monitor issue…
2025-03-07T17:02:39.101421+00:00 Limo kernel: i915 0000:03:00.0: [drm] *ERROR* Failed to read DPCD register 0x92
2025-03-07T17:02:42.298534+00:00 Limo kwin_wayland[2204]: kwin_core: Applying output config failed!
2025-03-07T17:02:42.299814+00:00 Limo kwin_wayland[2204]: ASSERT: "m_pending.crtc" in file ./src/backends/drm/drm_pipeline.cpp, line 53
2025-03-07T17:02:42.299937+00:00 Limo kwin_wayland_wrapper[2204]: KCrash: Application 'kwin_wayland' crashing... crashRecursionCounter = 2
2025-03-07T17:02:42.330394+00:00 Limo systemd[1]: Started systemd-coredump@8-40449-0.service - Process Core Dump (PID 40449/UID 0).
2025-03-07T17:02:42.331936+00:00 Limo systemd[1]: Started drkonqi-coredump-processor@8-40449-0.service - Pass systemd-coredump journal entries to relevant user for potential DrKonqi handling.
2025-03-07T17:02:42.824730+00:00 Limo systemd-coredump[40450]: Process 2204 (kwin_wayland) of user 1000 dumped core.#012#012Module libgomp.so.1 from deb gcc-14-14.2.0-4ubuntu2~24.04.amd64#012Module libgcc_s.so.1 from deb gcc-14-14.2.0-4ubuntu2~24.04.amd64#012Module ...... (very long line)
2025-03-07T17:02:42.866466+00:00 Limo systemd[1]: systemd-coredump@8-40449-0.service: Deactivated successfully.
2025-03-07T17:02:42.873129+00:00 Limo baloorunner[38936]: The Wayland connection broke. Did the Wayland compositor die?
2025-03-07T17:02:42.874907+00:00 Limo flatpak[3082]: The Wayland connection broke. Did the Wayland compositor die?
2025-03-07T17:02:42.874936+00:00 Limo flatpak[3082]: The Wayland connection broke. Did the Wayland compositor die?
2025-03-07T17:02:42.875005+00:00 Limo kwin_wayland_wrapper[2412]: (EE) failed to read Wayland events: Broken pipe
2025-03-07T17:02:42.875032+00:00 Limo baloorunner[38936]: qt.qpa.wayland: Attempting wayland reconnect
2025-03-07T17:02:42.875084+00:00 Limo konsole[3163]: The Wayland connection broke. Did the Wayland compositor die?
2025-03-07T17:02:42.875099+00:00 Limo konsole[3163]: qt.qpa.wayland: Attempting wayland reconnect
2025-03-07T17:02:42.875146+00:00 Limo evolution-alarm[4215]: Error reading events from display: Broken pipe
2025-03-07T17:02:42.875194+00:00 Limo ckb-next[2961]: The Wayland connection broke. Did the Wayland compositor die?
2025-03-07T17:02:42.875213+00:00 Limo ckb-next[2961]: The Wayland connection broke. Did the Wayland compositor die?
2025-03-07T17:02:42.875254+00:00 Limo org_kde_powerdevil[4522]: The Wayland connection broke. Did the Wayland compositor die?
2025-03-07T17:02:42.875296+00:00 Limo xdg-desktop-portal-kde[2584]: The Wayland connection broke. Did the Wayland compositor die?
2025-03-07T17:02:42.875339+00:00 Limo kactivitymanagerd[2574]: The Wayland connection broke. Did the Wayland compositor die?
2025-03-07T17:02:42.875383+00:00 Limo kdeconnectd[2763]: 2025-03-07T17:02:42 default: The Wayland connection broke. Did the Wayland compositor die?
2025-03-07T17:02:42.875399+00:00 Limo org_kde_powerdevil[4522]: qt.qpa.wayland: Attempting wayland reconnect
2025-03-07T17:02:42.875407+00:00 Limo kdeconnectd[2763]: 2025-03-07T17:02:42 qt.qpa.wayland: Attempting wayland reconnect
2025-03-07T17:02:42.875418+00:00 Limo baloorunner[38936]: Failed to write to the pipe: Bad file descriptor.
2025-03-07T17:02:42.875465+00:00 Limo solaar[2981]: Error reading events from display: Broken pipe
2025-03-07T17:02:42.875513+00:00 Limo xdg-desktop-por[2239]: Error reading events from display: Broken pipe
2025-03-07T17:02:42.875572+00:00 Limo kded6[2514]: The Wayland connection broke. Did the Wayland compositor die?
2025-03-07T17:02:42.875586+00:00 Limo kded6[2514]: qt.qpa.wayland: Attempting wayland reconnect
2025-03-07T17:02:42.875597+00:00 Limo org_kde_powerdevil[4522]: Failed to write to the pipe: Bad file descriptor.
2025-03-07T17:02:42.875609+00:00 Limo baloorunner[38936]: qt.qpa.wayland: There are no outputs - creating placeholder screen
2025-03-07T17:02:42.875670+00:00 Limo polkit-kde-authentication-agent-1[2582]: The Wayland connection broke. Did the Wayland compositor die?
2025-03-07T17:02:42.875699+00:00 Limo org_kde_powerdevil[4522]: qt.qpa.wayland: There are no outputs - creating placeholder screen
2025-03-07T17:02:42.875710+00:00 Limo polkit-kde-authentication-agent-1[2582]: qt.qpa.wayland: Attempting wayland reconnect
2025-03-07T17:02:42.875754+00:00 Limo plasmashell[2543]: The Wayland connection broke. Did the Wayland compositor die?
2025-03-07T17:02:42.875771+00:00 Limo kactivitymanagerd[2574]: qt.qpa.wayland: Attempting wayland reconnect
2025-03-07T17:02:42.875784+00:00 Limo kdeconnectd[2763]: 2025-03-07T17:02:42 default: Failed to write to the pipe: Bad file descriptor.
2025-03-07T17:02:42.875869+00:00 Limo kwalletd6[2161]: The Wayland connection broke. Did the Wayland compositor die?
2025-03-07T17:02:42.875950+00:00 Limo DiscoverNotifier[3004]: The Wayland connection broke. Did the Wayland compositor die?
2025-03-07T17:02:42.875969+00:00 Limo konsole[3163]: Failed to write to the pipe: Bad file descriptor.
2025-03-07T17:02:42.875979+00:00 Limo kwalletd6[2161]: qt.qpa.wayland: Attempting wayland reconnect
The only other thing I’m seeing quite a lot which looks like it might be relevant is this…
2025-03-07T17:04:55.644360+00:00 Limo plasmashell[43420]: The cached device pixel ratio value was stale on window update. Please file a QTBUG which explains how to reproduce.
OK after much pain and crashes I can say 100% this isn’t tied to a GPU or monitor. I’ve managed to get all the monitors working in different combinations (just not all at once) and the crash can happen on plugging a monitor into either GPU.
#0 __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:44
#1 __pthread_kill_internal (signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:78
#2 __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
#3 0x00007908f884527e in __GI_raise (sig=6) at ../sysdeps/posix/raise.c:26
#4 0x00007908fc3942ab in KCrash::defaultCrashHandler(int) () from /lib/x86_64-linux-gnu/libKF6Crash.so.6
#5 <signal handler called>
#6 __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:44
#7 __pthread_kill_internal (signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:78
#8 __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
#9 0x00007908f884527e in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#10 0x00007908f88288ff in __GI_abort () at ./stdlib/abort.c:79
#11 0x00007908f950c1ac in ?? () from /lib/x86_64-linux-gnu/libQt6Core.so.6
#12 0x00007908f950d089 in QMessageLogger::fatal(char const*, ...) const () from /lib/x86_64-linux-gnu/libQt6Core.so.6
#13 0x00007908f950d100 in qt_assert(char const*, char const*, int) () from /lib/x86_64-linux-gnu/libQt6Core.so.6
#14 0x00007908fbbdc130 in ?? () from /lib/x86_64-linux-gnu/libkwin.so.6
#15 0x00007908fbec6e89 in KWin::DrmOutput::present(std::shared_ptr<KWin::OutputFrame> const&) () from /lib/x86_64-linux-gnu/libkwin.so.6
#16 0x00007908fbc0c90a in KWin::WaylandCompositor::composite(KWin::RenderLoop*) () from /lib/x86_64-linux-gnu/libkwin.so.6
#17 0x00007908f94763e9 in ?? () from /lib/x86_64-linux-gnu/libQt6Core.so.6
#18 0x00007908fbc2d7c4 in KWin::RenderLoop::frameRequested(KWin::RenderLoop*) () from /lib/x86_64-linux-gnu/libkwin.so.6
#19 0x00007908fbc2e652 in KWin::RenderLoopPrivate::dispatch() () from /lib/x86_64-linux-gnu/libkwin.so.6
#20 0x00007908f94763e9 in ?? () from /lib/x86_64-linux-gnu/libQt6Core.so.6
#21 0x00007908f942025d in QTimer::timeout(QTimer::QPrivateSignal) () from /lib/x86_64-linux-gnu/libQt6Core.so.6
#22 0x00007908f9403806 in QObject::event(QEvent*) () from /lib/x86_64-linux-gnu/libQt6Core.so.6
#23 0x00007908fa801158 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt6Widgets.so.6
#24 0x00007908f94aefa0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt6Core.so.6
#25 0x00007908f9385f58 in QTimerInfoList::activateTimers() () from /lib/x86_64-linux-gnu/libQt6Core.so.6
#26 0x00007908f9388fba in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt6Core.so.6
#27 0x00007908f9f5a7b2 in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt6Gui.so.6
#28 0x00007908f94b14d3 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt6Core.so.6
#29 0x00007908f94b2ffd in QCoreApplication::exec() () from /lib/x86_64-linux-gnu/libQt6Core.so.6
#30 0x0000629c87950384 in ?? ()
#31 0x00007908f882a1ca in __libc_start_call_main (main=main@entry=0x629c8794e4a0, argc=argc@entry=14, argv=argv@entry=0x7ffebc1e7eb8) at ../sysdeps/nptl/libc_start_call_main.h:58
#32 0x00007908f882a28b in __libc_start_main_impl (main=0x629c8794e4a0, argc=14, argv=0x7ffebc1e7eb8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffebc1e7ea8) at ../csu/libc-start.c:360
#33 0x0000629c87956665 in ?? ()
Fixed two serious issues that could make KWin crash on login or fail to allow login at all on systems with certain types of monitor arrangements, on distros that ship user software with asserts turned on. (Xaver Hugl, link 1 and link 2)
Just to update this.
6.3.3 did indeed fix the 7th monitor problem. However it didn’t resolve the black screens with frozen mouse pointer issue I get when waking from sleep, unlocking the screen after they have gone into powersaving or sometimes even just logging in after power up. I’ll see if I can get some debug on this as its obviously unrelated.