Bug#973474: gnome: Unable to log back in in after screen lock
Marcin Owsiany
marcin at owsiany.pl
Tue Mar 2 22:18:35 GMT 2021
Hi again,
wt., 2 mar 2021 o 02:31 Simon McVittie <smcv at debian.org> napisał(a):
> On Mon, 01 Mar 2021 at 22:48:47 +0100, Marcin Owsiany wrote:
> > I installed from debian-bullseye-DI-alpha3-amd64-netinst.iso in
> virt-manager VM
> > with 2 VCPUs and 4GB of RAM.
> > Other than selecting Polish locale and installing ssh server and all
> possible
> > display managers and window environments that debian-installer allows I
> don't
> > remember doing anything special.
>
> I hope that's pl_PL.UTF-8 rather than a non-Unicode character set?
>
Yes, the latin2 nightmare is long gone :-)
> Installing all possible desktop environments probably results in each
> desktop environment having a "thundering herd" of session services all
> trying to jump in and do similar things at around the same time, so it
> doesn't entirely surprise me if some of them end up fighting.
> Unfortunately, the same pile of extra processes also obscures what is
> going on in the log.
>
Right. I made yet another attempt to reproduce this, aiming for as short a
journal log as I could.
The result is "just" 2570 lines this time.
https://people.debian.org/~porridge/journal3.txt
It also includes "logger" markers which I made from a single ssh session,
which helps reduce the overall number of sessions.
It might serve better as a minimal repro for filing an upstream bug.
$ egrep --color 'Session [0-9a-f]|porridge\[[0-9]*\]:' journal3.txt
mar 02 22:37:39 debian systemd[1]: Started Session c1 of user Debian-gdm.
mar 02 22:38:10 debian systemd[1]: Started Session 2 of user porridge.
mar 02 22:38:22 debian porridge[5608]: ssh-logged-in
mar 02 22:38:35 debian porridge[5615]: cinnamon-starting-login
mar 02 22:38:36 debian systemd[1]: Started Session 4 of user porridge.
mar 02 22:38:47 debian systemd-logind[465]: Session c1 logged out. Waiting
for processes to exit.
mar 02 22:38:49 debian porridge[7641]: cinnamon-starting-logout
mar 02 22:38:50 debian systemd-logind[465]: Session 4 logged out. Waiting
for processes to exit.
mar 02 22:38:50 debian systemd[1]: Started Session c2 of user Debian-gdm.
mar 02 22:39:02 debian porridge[7905]: gnome-starting-login
mar 02 22:39:04 debian systemd[1]: Started Session 5 of user porridge.
mar 02 22:39:07 debian systemd-logind[465]: Session c2 logged out. Waiting
for processes to exit.
mar 02 22:39:10 debian porridge[9464]: gnome-starting-screenlock
mar 02 22:39:24 debian porridge[9739]: gnome-attempting-unlock
mar 02 22:39:27 debian porridge[10824]: gnome-stuck
mar 02 22:39:29 debian porridge[10831]: ssh-logging-out
mar 02 22:39:30 debian systemd-logind[465]: Session 2 logged out. Waiting
for processes to exit.
mar 02 22:39:36 debian systemd[1]: Started Session 6 of user porridge.
To summarize the above:
- c1 is the gdm session where I log into cinnamon
- 2 is my ssh session for calling logger
- 4 is the cinnamon X session
- c2 is the gdm session where I log into GNOME
- 5 is the GNOME session
- 6 is another ssh login, irrelevant
And now it's pretty clear that indeed gnome-shell for some reason thinks it
belongs to session 4, while it's part of session 5.
$ grep NoSuchSession journal3.txt
mar 02 22:39:05 debian gnome-shell[7965]: JS ERROR: Could not get a proxy
for the current session: Gio.IOErrorEnum:
GDBus.Error:org.freedesktop.login1.NoSuchSession: No session '4' known
In fact, session 4 is reported to be gone for good 4 seconds before I even
press ENTER after the password to log into GNOME:
mar 02 22:38:57 debian systemd-logind[465]: Removed session 4.
mar 02 22:39:02 debian porridge[7905]: gnome-starting-login
Now back to your questions from the previous time:
> To verify, I subsequently (without rebooting the VM) logged into and out
> of
> > Cinnamon session once more, and then logged into the GNOME session again
> > (without running the logger commands this time), and WAS able to
> reproduce the
> > issue.
> >
> > I have a full output of journalctl for that run of the VM, at [8]https://
> > people.debian.org/~porridge/journal.txt.gz
>
> At what time did you log into and out of Cinnamon, and at what time did you
> log into GNOME?
>
> If they are the last ones in the log,
Sorry, I didn't record the times, but yes, they should be the last two
sessions in this order.
> then the timeline is:
>
> 22:22:47 start to log in to Cinnamon on tty4, logind session 13
> 22:22:58 gdm greeter on tty1 exits
> 22:23:02 log out from Cinnamon
> 22:23:03 gdm vt-switches back to tty1 and launches a new greeter
> 22:23:08 logind session 13 ends
> 22:23:16 start to log in to GNOME (session 15)
>
> This is where it gets confusing. systemd --user process 23531 seems to be
> trying to start a GNOME Shell session on Wayland and on X11 simultaneously
> (or something?) and then at 22:23:19 we see:
>
> > mar 01 22:23:19 debian gnome-shell[25939]: JS ERROR: Could not get a
> proxy for the current session: Gio.IOErrorEnum:
> GDBus.Error:org.freedesktop.login1.NoSuchSession: No session '13' known
> > asyncCallback
> @resource:///org/gnome/gjs/modules/core/overrides/Gio.js:131:23
>
> This means gnome-shell somehow thinks it's part of session 13 - perhaps
> because it's being run as a `systemd --user` per-user service, and your
> systemd --user instance still has traces of session 13 left over?
>
> But, meanwhile, at around the same time, the part of gnome-shell that is
> a polkit (policykit) agent connects to polkitd, and polkitd correctly
> identifies it as belonging to session 15...
>
> We end up with a GNOME Wayland session (was that deliberate?)
>
There are two GNOME session types in the menu. I believe the one called
just "GNOME" is indeed Wayland-based.
Then at 22:23:24 you log in via ssh and log "before-lock2".
>
> At 22:23:31, the gdm greeter exits.
>
> At 22:23:34, gdm unlocks the login keyring. Was that you trying to unlock
> the locked screen?
>
If you mean a message such as "gdm-password][PID]: gkr-pam: unlocked login
keyring" then yes, this appears exactly when I press enter after entering
the password in the screen unlock dialog.
At 22:23:49, you log in via ssh to log "stuck".
>
> This looks to me as though there were enough lingering processes from
> session 13 that the gnome-shell that should be for session 15 somehow
> thinks
> it is part of session 15. I think that might be the root cause for the lock
> screen not unlocking: if GNOME Shell and gdm disagree on what the Shell's
> session ID is, then GNOME Shell telling gdm "please unlock session 13" or
> gdm telling GNOME Shell "if you are session 13, then please unlock" is
> not going to have the desired effect.
>
> If you can get the system into this state again, please look for the above
> message in the log, and then try to ssh in and run:
>
> sudo loginctl
> sudo loginctl unlock-session 13
>
Here's the effect:
porridge at debian:~$ sudo loginctl
SESSION UID USER SEAT TTY
5 1000 porridge seat0 tty3
6 1000 porridge pts/0
2 sessions listed.
porridge at debian:~$ grep NoSuchSession journal3.txt
mar 02 22:39:05 debian gnome-shell[7965]: JS ERROR: Could not get a proxy
for the current session: Gio.IOErrorEnum:
GDBus.Error:org.freedesktop.login1.NoSuchSession: No session '4' known
porridge at debian:~$ sudo loginctl unlock-session 4
Failed to issue method call: No session '4' known
porridge at debian:~$ sudo loginctl unlock-session 5
porridge at debian:~$
Nothing (apart from sudo) gets logged to journal when I run these
unlock-session commands.
Neither is there any effect in the GUI. Still locked out.
> replacing 13 with the session ID from the error message. That might
> unlock the screen, or might at least give some useful information. Or,
> if it doesn't, try using a higher session ID.
>
Just to be sure I also tried with session 6 (my ssh login) but that didn't
help either :-)
I'd be curious to learn what mechanism gnome-shell used that gets fooled
into thinking it's another session.
And why not just getenv("XDG_SESSION_ID")?
Marcin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-gnome-maintainers/attachments/20210302/dd7f9885/attachment-0001.htm>
More information about the pkg-gnome-maintainers
mailing list