SUMMARY The KSplash screen used to take a few seconds on my PC. Now after upgrading to 6.2.1, it takes much longer (~30s). It seems the KSplash "ready" Stage signal was fired as usual but KSplash no longer reacts to it: ``` Oct 15 20:56:37 cvhc-tomato systemd[1763]: Starting Splash screen shown during boot... Oct 15 20:56:40 cvhc-tomato systemd[1763]: Starting KSplash "ready" Stage... Oct 15 20:56:40 cvhc-tomato systemd[1763]: Finished KSplash "ready" Stage. Oct 15 20:57:07 cvhc-tomato systemd[1763]: Finished Splash screen shown during boot. ``` This was before the upgrade: ``` May 15 09:51:34 cvhc-tomato systemd[1391]: Starting Splash screen shown during boot... May 15 09:51:39 cvhc-tomato systemd[1391]: Starting KSplash "ready" Stage... May 15 09:51:39 cvhc-tomato systemd[1391]: Finished KSplash "ready" Stage. May 15 09:51:39 cvhc-tomato systemd[1391]: Finished Splash screen shown during boot. ``` SOFTWARE/OS VERSIONS Operating System: Arch Linux KDE Plasma Version: 6.2.1 KDE Frameworks Version: 6.7.0 Qt Version: 6.8.0 Kernel Version: 6.11.3-arch1-1 (64-bit) Graphics Platform: Wayland Processors: 16 × AMD Ryzen 7 7700X 8-Core Processor Memory: 58.3 GiB of RAM Graphics Processor: AMD Radeon Graphics
Looks like this change between 6.2.0 and 6.2.1 caused the issue: ``` diff --git a/startkde/systemd/plasma-ksplash-ready.service.in b/startkde/systemd/plasma-ksplash-ready.service.in index 3f6744f378..0bd88e6c92 100644 --- a/startkde/systemd/plasma-ksplash-ready.service.in +++ b/startkde/systemd/plasma-ksplash-ready.service.in @@ -6,5 +6,5 @@ PartOf=graphical-session.target [Service] Type=oneshot -ExecStart=-@QtBinariesDir@/qdbus org.kde.KSplash /KSplash org.kde.KSplash.setStage ready +ExecStart=dbus-send --session --reply-timeout=1 --dest=org.kde.KSplash /KSplash org.kde.KSplash.setStage string:ready Slice=session.slice ``` I try to use the previous qdbus version and the long waiting time is gong: ``` $ cat /home/cuihao/.config/systemd/user/plasma-ksplash-ready.service.d/override.conf [Service] ExecStart= ExecStart=/usr/bin/qdbus org.kde.KSplash /KSplash org.kde.KSplash.setStage ready ```
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/4841
*** Bug 494852 has been marked as a duplicate of this bug. ***
*** Bug 494821 has been marked as a duplicate of this bug. ***
*** Bug 494872 has been marked as a duplicate of this bug. ***
Git commit 83aa79af1e624d8978593e0f8724e3b42d8365ac by Nate Graham, on behalf of Wolfgang Müller. Committed on 16/10/2024 at 15:05. Pushed by davidedmundson into branch 'master'. startkde: Specify --type=method_call to correctly notify ksplash In 3e295c33d0 (startkde: Avoid waiting when notifying ksplash is up, 2024-10-11) the invocation of the dbus interface was changed from qdbus to dbus-send. The former defaults to calling a method, whilst the latter defaults to sending a signal, causing the setStage method to never be called. Instead of using the default behaviour, specify explicitly that we want to call a method using --type=method_call. M +1 -1 startkde/systemd/plasma-ksplash-ready.service.in https://invent.kde.org/plasma/plasma-workspace/-/commit/83aa79af1e624d8978593e0f8724e3b42d8365ac
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/4842
Git commit 271801a547a94f8979d6293dc653643aa70dafe7 by Nate Graham. Committed on 16/10/2024 at 15:32. Pushed by ngraham into branch 'Plasma/6.2'. startkde: Specify --type=method_call to correctly notify ksplash In 3e295c33d0 (startkde: Avoid waiting when notifying ksplash is up, 2024-10-11) the invocation of the dbus interface was changed from qdbus to dbus-send. The former defaults to calling a method, whilst the latter defaults to sending a signal, causing the setStage method to never be called. Instead of using the default behaviour, specify explicitly that we want to call a method using --type=method_call. (cherry picked from commit 83aa79af1e624d8978593e0f8724e3b42d8365ac) Co-authored-by: Wolfgang Müller <wolf@oriole.systems> M +1 -1 startkde/systemd/plasma-ksplash-ready.service.in https://invent.kde.org/plasma/plasma-workspace/-/commit/271801a547a94f8979d6293dc653643aa70dafe7
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/4843
Git commit bcc206be8288ba20265c03240e8fac8e5a62de13 by Fushan Wen. Committed on 17/10/2024 at 00:00. Pushed by fusionfuture into branch 'master'. startkde: test setStage is called after starting plasma-ksplash-ready.service Related: bug 482267 M +1 -0 appiumtests/CMakeLists.txt A +14 -0 appiumtests/ksplash/CMakeLists.txt A +79 -0 appiumtests/ksplash/ksplashtest.py M +2 -0 lookandfeel/org.kde.breeze/contents/splash/Splash.qml https://invent.kde.org/plasma/plasma-workspace/-/commit/bcc206be8288ba20265c03240e8fac8e5a62de13
I'm so happy I found this, I just reinstalled my OS and all of a sudden logins were incredibly slow. If you are reading this and don't want to wait for the fix, I guess you can just apply the change of this commit: https://invent.kde.org/plasma/plasma-workspace/-/commit/83aa79af1e624d8978593e0f8724e3b42d8365ac to the systemd unit file here (needs root permissions): /usr/lib/systemd/user/plasma-ksplash-ready.service I had tried applying the override.conf as suggested by CUI Hao in a previous comment, but somehow it was ineffective.
There was a 6.2.1.1 so hopefully you're not waiting too long