FS#67623 - [plasma-workspace] Missing "switch user" functionality with systemd 246

Attached to Project: Arch Linux
Opened by Bogomil (smirky) - Tuesday, 18 August 2020, 05:25 GMT
Last edited by Antonio Rojas (arojas) - Tuesday, 10 November 2020, 22:31 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Antonio Rojas (arojas)
Architecture All
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 15
Private No

Details

Description:
When using Plasma 5 + kscreenlocker + sddm, with multi-user configuration, there should be an option to "Switch User" in the lockscreen.
After updating systemd to 246, this option is no longer present. Downgrading systemd, systemd-libs, systemd-sysvcompat back to 245 resolves the problem.

Additional info:
* systemd 245 -> 246

Steps to reproduce:
1. Login, using SDDM with user X to Plasma 5.
2. Lock user X.
3. Try to switch to user Y and notice the missing option.
This task depends upon

Closed by  Antonio Rojas (arojas)
Tuesday, 10 November 2020, 22:31 GMT
Reason for closing:  Fixed
Additional comments about closing:  plasma-workspace 5.20.3
Comment by Otakar (otula) - Tuesday, 18 August 2020, 06:55 GMT
I can confirm this bug, it still persists in systemd version 246.2.
Comment by Marat (Morion) - Wednesday, 19 August 2020, 12:30 GMT
I can confirm this bug, it still persists in systemd version 246.2-1
Comment by Otakar (otula) - Thursday, 20 August 2020, 12:50 GMT
I would like to add information that there is missing "switch user" option not only in the lockscreen, but also in the "start menu".
Comment by Zach Smith (zaxmyth) - Friday, 21 August 2020, 04:30 GMT
It looks like in systemd 246 they deprecated the CanMultiSession property that SDDM probably depends on. https://github.com/systemd/systemd/commit/8f8cc84ba4612e74cd1e26898c6816e6e60fc4e9#diff-84655d62bac1ad22622cff8acddd395dR299

The property still exists and is set to "true" but because they added SD_BUS_VTABLE_HIDDEN hidden from introspection which I suspect that SDDM need for some reason (I'm just guessing on that, honestly). The CanMultiSession property is still there and you can confirm it returns "true" on 246 with the following command: `busctl get-property org.freedesktop.login1 /org/freedesktop/login1/seat/seat0 org.freedesktop.login1.Seat CanMultiSession`. You can also confirm it doesn't appear in introspection by withholding the CanMultiSession property name from the previous command and hitting the tab key which will introspect the interface and show you the available properties - CanMultiSession will be missing.

I don't use Plasma or SDDM and don't know much about but it does appear to depend on the CanMultiSession property https://github.com/sddm/sddm/blob/cf4c3caf058ea81d0e61c2087493623faac56a3f/data/interfaces/org.freedesktop.login1.Seat.xml#L11

Try opening a bug with upstream SDDM as well if one doesn't already exist.

Comment by SanskritFritz (SanskritFritz) - Saturday, 22 August 2020, 19:46 GMT
I experience the same behaviour when logging in to Plasma via LightDM, so I think it doesn't depend on the greeter.
Comment by loqs (loqs) - Saturday, 22 August 2020, 20:43 GMT
Has https://github.com/systemd/systemd/commit/8f8cc84ba4612e74cd1e26898c6816e6e60fc4e9 been confirmed as the cause by bisection or testing that commit and its parent?
Comment by Maxwell Draven (Ravenman) - Saturday, 22 August 2020, 21:15 GMT
I can confirm this bug, it still persists in systemd version 246.2-2, systemd-libs version 246.2-2 and systemd-sysvcompat version 246.2-2

As workaround, I downgraded to systemd version 245.7-1, systemd-libs version 245.7-1 and systemd-sysvcompat version 245.7-1 and the switch user option is back.
Comment by Zach Smith (zaxmyth) - Sunday, 23 August 2020, 01:07 GMT
No bisection. I'm not running SDDM or Plasma. Just noticed the change in the systemd code and pointed it out as a possible issue.
Comment by loqs (loqs) - Sunday, 23 August 2020, 03:22 GMT
Trying to build that commit or its parent, both fail due to missing https://github.com/systemd/systemd/commit/d17eabb1052e7c8c432331a7a782845e36164f01

Attached source bundle for the parent of 8f8cc84ba4612e74cd1e26898c6816e6e60fc4e9
If that works remove the ^ from commit=8f8cc84ba4612e74cd1e26898c6816e6e60fc4e9^ build again and see if it fails.
Comment by Maxwell Draven (Ravenman) - Friday, 28 August 2020, 17:46 GMT
This bug still persists in systemd version 246.3-1, systemd-libs version 246.3-1 and systemd-sysvcompat version 246.3-1

As workaround, I downgraded to systemd version 245.7-1, systemd-libs version 245.7-1 and systemd-sysvcompat version 245.7-1 and the switch user option is back.
Comment by loqs (loqs) - Friday, 28 August 2020, 18:03 GMT
@Ravenman unfortunately there is nothing actionable in the bug report.
A fix needs to come from upstream. So a bug report needs to be opened with upstream, possibly both systemd and SDDM.
It would greatly speed up the process if the commit in systemd that introduced the change has been identified.
That is why I created the source bundle in [1] for affected users to test, see also [2].

[1] https://bugs.archlinux.org/task/67623#comment191966
[2] https://wiki.archlinux.org/index.php/Bisecting_bugs_with_Git
Comment by Bogomil (smirky) - Monday, 31 August 2020, 06:01 GMT
I'm not entirely sure that the login manager is at fault here. Definitely, systemd introduced the problem, but perhaps also kscreenlocker may need to adapt?
Or perhaps they rely on things that systemd/sddm are exporting.
Comment by Dimos Dimoulis (dimosd) - Wednesday, 02 September 2020, 07:30 GMT
The latest plasma 5.19.5 doesn't fix it. It's probably a bug of SDDM+systemd 246.
Comment by loqs (loqs) - Wednesday, 02 September 2020, 08:22 GMT
Do you not know how to build and install the systemd package in [1] or you are not willing to do so?

[1] https://bugs.archlinux.org/task/67623#comment191966
Comment by Dimos Dimoulis (dimosd) - Wednesday, 02 September 2020, 09:06 GMT
Both versions (with and without ^) build successfully, the first one does not have the bug while the second does.
I am guessing that GDM is not affected, only SDDM and possibly LightDM.
Comment by loqs (loqs) - Wednesday, 02 September 2020, 09:38 GMT
Thank you, so 8f8cc84ba4612e74cd1e26898c6816e6e60fc4e9 is confirmed as the systemd commit that introduced the issue causing change.

Can you please open upstream bug reports with SDDM [1] and systemd [2].

[1] https://github.com/sddm/sddm/issues
[2] https://github.com/systemd/systemd/issues
Comment by Dimos Dimoulis (dimosd) - Thursday, 03 September 2020, 08:43 GMT
https://github.com/sddm/sddm/issues/1293
A different cause than suspected has been identified and there's a patch for it.
Comment by Bogomil (smirky) - Thursday, 03 September 2020, 09:07 GMT
What patch?
Comment by Antonio Rojas (arojas) - Thursday, 03 September 2020, 18:05 GMT
Not sure why everyone's talking about sddm here... the KDE screen locker has nothing to do with sddm.
Comment by loqs (loqs) - Thursday, 03 September 2020, 18:54 GMT
@arojas is the correct upstream bug tracker https://invent.kde.org/plasma/kscreenlocker/-/issues ?
Comment by Antonio Rojas (arojas) - Thursday, 03 September 2020, 18:57 GMT
No, KDE bug reports go to bugs.kde.org. In any case, KDE devs are aware of this and there is a fix in the works.
Comment by Filippo (TeslaZap) - Tuesday, 08 September 2020, 17:18 GMT
@dimosd I'm using GDM (gdm-3.36.3-6) and I'm affected too
Comment by hamelg (hamelg) - Sunday, 27 September 2020, 13:41 GMT Comment by Dimos Dimoulis (dimosd) - Thursday, 01 October 2020, 16:52 GMT
  • Field changed: Percent Complete (100% → 0%)
Still doesn't work for me
Comment by Marat (Morion) - Thursday, 01 October 2020, 16:53 GMT
for me too
Comment by Otakar (otula) - Monday, 05 October 2020, 12:18 GMT
It is only partially fixed. It's okay in the application menu, but in the lock screen is a "switch user" possibility still missing.
Comment by Bogomil (smirky) - Tuesday, 13 October 2020, 05:21 GMT
That's odd. Both options were there after the first fix for me, but now I also don't have the lockscreen option, only the application menu one. What changed?
Comment by Antonio Rojas (arojas) - Wednesday, 14 October 2020, 06:10 GMT
Please test 5.20
Comment by Otakar (otula) - Wednesday, 14 October 2020, 06:24 GMT
@arojas: It still doesn't work in a 5.20 version (application menu is okay, the lockscreen isn't)
Comment by Antonio Rojas (arojas) - Wednesday, 14 October 2020, 06:26 GMT
Then please report upstream
Comment by Jann (qgj) - Friday, 30 October 2020, 10:36 GMT
Bug is still there for me - downgrading to systemd 245 brings back the user switch options but it is not possible to switch back to the 1st user from the lock screen without the 2nd user screen freezing.

Got it working by downgrading plasma-workspace and plasma-desktop as well (need both, cause of some kcm plugins that would otherwise be missing):

sudo pacman -U \
https://archive.org/download/archlinux_pkg_systemd/systemd-245.7-1-x86_64.pkg.tar.zst \
https://archive.org/download/archlinux_pkg_systemd-libs/systemd-libs-245.7-1-x86_64.pkg.tar.zst \
https://archive.org/download/archlinux_pkg_systemd-sysvcompat/systemd-sysvcompat-245.7-1-x86_64.pkg.tar.zst \
https://archive.org/download/archlinux_pkg_plasma-workspace/plasma-workspace-5.19.5-3-x86_64.pkg.tar.zst \
https://archive.org/download/archlinux_pkg_plasma-desktop/plasma-desktop-5.19.5-1-x86_64.pkg.tar.zst

/etc/pacman.conf:
IgnorePkg = systemd systemd-libs systemd-sysvcompat plasma-desktop plasma-workspace

Don't know if needed, but for better consistency I downgraded all of the plasma packages until this is fixed:
Comment by Konstantin Baranov (const) - Sunday, 08 November 2020, 07:15 GMT
I can confirm that reverting 8f8cc84ba4612e74cd1e26898c6816e6e60fc4e9 in systemd-246 brings back user switching functionality.
Tested against KDE/SDDM and KDE/LightDM on Gentoo (sorry :).

Loading...