Bug report regarding "switch user"

Hello, quick bug report here

Problem is that if you launch "switch user" and then try to log back into the account you just switched from, causes infinite login loading screen, must restart pc on power button

This happened because I forgot to do something on X user before switching to Y user

Ran into this bug twice in the last 24 hours

System:
Kernel: 6.1.12-zen1-1-zen arch: x86_64 bits: 64 compiler: gcc v: 12.2.1
parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
root=UUID=ac3db51d-0458-4e6e-a36e-12defe2236f9 rw rootflags=subvol=@
quiet quiet splash rd.udev.log_priority=3 vt.global_cursor_default=0
loglevel=3 ibt=off
Desktop: KDE Plasma v: 5.27.1 tk: Qt v: 5.15.8 wm: kwin_x11 vt: 1 dm: SDDM
Distro: Garuda Linux base: Arch Linux
Machine:
Type: Desktop Mobo: ASUSTeK model: PRIME A320I-K v: Rev X.0x
serial: <superuser required> UEFI: American Megatrends v: 2203
date: 07/28/2020
CPU:
Info: model: AMD Ryzen 5 2600 bits: 64 type: MT MCP arch: Zen+ gen: 2
level: v3 note: check built: 2018-21 process: GF 12nm family: 0x17 (23)
model-id: 8 stepping: 2 microcode: 0x800820D
Topology: cpus: 1x cores: 6 tpc: 2 threads: 12 smt: enabled cache:
L1: 576 KiB desc: d-6x32 KiB; i-6x64 KiB L2: 3 MiB desc: 6x512 KiB
L3: 16 MiB desc: 2x8 MiB
Speed (MHz): avg: 1555 high: 1629 min/max: 1550/3400 boost: enabled
scaling: driver: acpi-cpufreq governor: schedutil cores: 1: 1550 2: 1550
3: 1550 4: 1533 5: 1550 6: 1550 7: 1629 8: 1550 9: 1550 10: 1550 11: 1550
12: 1550 bogomips: 81438
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
Vulnerabilities: <filter>
Graphics:
Device-1: AMD Ellesmere [Radeon RX 470/480/570/570X/580/580X/590]
vendor: Sapphire Nitro+ driver: amdgpu v: kernel arch: GCN-4
code: Arctic Islands process: GF 14nm built: 2016-20 pcie: gen: 3
speed: 8 GT/s lanes: 16 ports: active: DP-2 empty: DP-1, DVI-D-1,
HDMI-A-1, HDMI-A-2 bus-ID: 07:00.0 chip-ID: 1002:67df class-ID: 0300
temp: 46.0 C
Display: x11 server: X.Org v: 21.1.7 with: Xwayland v: 22.1.8
compositor: kwin_x11 driver: X: loaded: amdgpu unloaded: modesetting
alternate: fbdev,vesa dri: radeonsi gpu: amdgpu display-ID: :0 screens: 1
Screen-1: 0 s-res: 1920x1080 s-dpi: 96 s-size: 508x285mm (20.00x11.22")
s-diag: 582mm (22.93")
Monitor-1: DP-2 mapped: DisplayPort-1 model: VG259QM serial: <filter>
built: 2021 res: 1920x1080 dpi: 90 gamma: 1.2 size: 544x303mm (21.42x11.93")
diag: 623mm (24.5") ratio: 16:9 modes: max: 1920x1080 min: 720x400
API: OpenGL v: 4.6 Mesa 22.3.6 renderer: AMD Radeon RX 570 Series
(polaris10 LLVM 15.0.7 DRM 3.49 6.1.12-zen1-1-zen) direct-render: Yes
Audio:
Device-1: AMD Ellesmere HDMI Audio [Radeon RX 470/480 / 570/580/590]
vendor: Sapphire driver: snd_hda_intel v: kernel bus-ID: 3-4:4
chip-ID: 041e:3256 pcie: gen: 3 class-ID: 0300 serial: <filter>
speed: 8 GT/s lanes: 16 bus-ID: 07:00.1 chip-ID: 1002:aaf0 class-ID: 0403
Device-2: AMD Family 17h HD Audio vendor: ASUSTeK driver: snd_hda_intel
v: kernel pcie: gen: 3 speed: 8 GT/s lanes: 16 bus-ID: 09:00.3
chip-ID: 1022:1457 class-ID: 0403
Device-3: Creative Sound BlasterX G6 type: USB
driver: hid-generic,snd-usb-audio,usbhid
Sound API: ALSA v: k6.1.12-zen1-1-zen running: yes
Sound Server-1: PulseAudio v: 16.1 running: no
Sound Server-2: PipeWire v: 0.3.66 running: yes
Network:
Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet
vendor: ASUSTeK PRIME B450M-A driver: r8169 v: kernel pcie: gen: 1
speed: 2.5 GT/s lanes: 1 port: f000 bus-ID: 05:00.0 chip-ID: 10ec:8168
class-ID: 0200
IF: enp5s0 state: up speed: 1000 Mbps duplex: full mac: <filter>
Drives:
Local Storage: total: 447.13 GiB used: 142.47 GiB (31.9%)
SMART Message: Unable to run smartctl. Root privileges required.
ID-1: /dev/sda maj-min: 8:0 vendor: Kingston model: SUV400S37480G
size: 447.13 GiB block-size: physical: 4096 B logical: 512 B speed: 6.0 Gb/s
type: SSD serial: <filter> rev: 56R8 scheme: GPT
Partition:
ID-1: / raw-size: 446.83 GiB size: 446.83 GiB (100.00%)
used: 142.47 GiB (31.9%) fs: btrfs dev: /dev/sda2 maj-min: 8:2
ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
used: 608 KiB (0.2%) fs: vfat dev: /dev/sda1 maj-min: 8:1
ID-3: /home raw-size: 446.83 GiB size: 446.83 GiB (100.00%)
used: 142.47 GiB (31.9%) fs: btrfs dev: /dev/sda2 maj-min: 8:2
ID-4: /var/log raw-size: 446.83 GiB size: 446.83 GiB (100.00%)
used: 142.47 GiB (31.9%) fs: btrfs dev: /dev/sda2 maj-min: 8:2
ID-5: /var/tmp raw-size: 446.83 GiB size: 446.83 GiB (100.00%)
used: 142.47 GiB (31.9%) fs: btrfs dev: /dev/sda2 maj-min: 8:2
Swap:
Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default)
ID-1: swap-1 type: zram size: 15.55 GiB used: 0 KiB (0.0%) priority: 100
dev: /dev/zram0
Sensors:
System Temperatures: cpu: 31.9 C mobo: N/A gpu: amdgpu temp: 47.0 C
Fan Speeds (RPM): N/A gpu: amdgpu fan: 995
Info:
Processes: 350 Uptime: 3m wakeups: 0 Memory: 15.55 GiB
used: 2.67 GiB (17.2%) Init: systemd v: 253 default: graphical
tool: systemctl Compilers: gcc: 12.2.1 clang: 15.0.7 Packages: pm: pacman
pkgs: 1503 libs: 455 tools: octopi,paru Shell: fish v: 3.6.0 default: Bash
v: 5.1.16 running-in: konsole inxi: 3.3.25
Garuda (2.6.15-1):
System install date:     2023-02-13
Last full system update: 2023-02-27
Is partially upgraded:   No
Relevant software:       snapper NetworkManager mkinitcpio
Windows dual boot:       No/Undetected
Failed units:~~~

I cannot reproduce this following my own steps to switch users.

What exact steps do you follow to switch users?
Where do you launch switch user from? The User Switcher applet? Do you click on the user name from that dropdown menu, on New Session or on Logout? etc...

1 Like

I was able to reproduce this from Application Launcher using Leave/Switch User on Dr460nized Gaming. Switching TTY broke me out of the infinite load, but seems to have created another session instead of going back into the original one. This might be intended behavior, please excuse my ignorance, as I’ve never used multi-users before.

loginctl list-sessions
SESSION  UID USER SEAT  TTY
2 1000 kilo seat0
5 1000 kilo seat0
c2  960 sddm seat0

3 sessions listed.

To avoid this for now, switch back to the original TTY, ex. CTRL+ALT+F1, and then log back in the locked existing session. When switching users, it uses the next available TTY, and using this to login to the same user appears to be causing the issue.

1 Like

Seems Plasma related, judging by the behavior and the fact Dr460nized only provides UserSwitcher applet, but does not control the activity in itself.

To go further in this theory, it would be interesting for the OP to switch Global Theme for one of the default Plasma, like Breeze Dark, reboot, login and test those exact steps causing the issue. If the results are the same, then I think it would be Plasma related. Intended or not.

(WARNING: switching Global Theme will override all custom theming, taking notes of what has been modified or backup the theme is really handy here)

4 Likes

I tried what you suggested, and btw thanks for the heads up about resetting global theme config.

After setting global theme to "Breeze dark" i tested doing the switching user sequence again, in this following order:

task manager -> leave -> switch user -> switch user -> back -> enter pw. This successfully logs me back into the initial user.

I tried the another sequence which follows here:

task manager -> leave -> switch user -> switch user -> activate switch user (promted to secondary user login screen) -> switch user -> switch to this session (initial user). This also boots me back into the initial user successfully.

I then swapped back to my old config file and ran both of the above mentioned sequences and i got the infinite login loop bug from both the former and the latter aforementioned sequences, but the latter sequence gave me an interesting variation. I used the trick that @kilo mentions by pressing ctrl + alt + f1 (btw thanks mate, didn't know you could do that). When doing the latter mentioned sequence I can see that I now have new sessions to choose from rather than just the first initial session, and trying to choose from, all of which except the first session gives me the bug. So the second sequence only gives me the bug once, it is then possible to circumvent it by selecting the first session

So clicking "switch user" seems to create a new session, and that's the bug? There are probably more variations and my description may not be perfect..

1 Like

So you're saying the infinite loop occurs only with Dr460nizezd Global Theme and not with Breeze Dark?

I'm not on Dr460nizezd Global Theme, I'm on Sweet. Sorry but I thought that was made clear in the "garuda inxi" thing I posted, is it not? I think some of the elements of my setup overlap with Dragonized though... I don't know, it kind of looks the same in many ways, Breeze dark is very different

But yea.. it doesn't happen on breeze dark thats for sure

The Global Theme is not listed in garuda-inxi.

I'm gonna try this sequence on Dragonized in a while. Gonna update you

1 Like

Update: The bug replicates on Dr460nizezd Global Theme

To sum up for anyone glancing at this later:

Infinite login screen bug seems to occur when switching user and then switching back to initial user before logging into second user

This happens on Sweet theme and Dr460nizezd Global Theme, not on Breeze dark

Thanks for the testing!

I am not surprised of the result, as Dr460nized is heavily based on Sweet.
The issue must then come from Sweet (upstream).
This means it would be a good thing to report this to the Sweet Theme dev. It is still maintained GitHub - EliverLara/Sweet: Light and dark colorful Gtk3.20+ theme

1 Like

Alright, I've opened a new issue on there now: Bug report on switch user · Issue #227 · EliverLara/Sweet · GitHub

Lets see if any progress is made

2 Likes

Great! I'll chime in probably this w-e after I test it on my machines as well and tell the guy not just one machine has the same issue.

In my experience KDE and SDDM are a quite janky and buggy pair. I've had this issue too when I used KDE and never managed to fix it. I faced it throughout my use of Manjaro and Garuda.

I recommend using a login manager like ly or greetd.

I'm getting a black screen on relogin to User1. No infinite loop.
Maybe I am not doing it exactly like you. Let's see what Elvira says, though.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.