#973831 drive-menu: causes Shell to hang when password entered too soon after waking up from time-based suspend

#973831#5
Date:
2020-11-05 19:08:25 UTC
From:
To:
After a suspend, my laptop will present me with the username/password
prompt, at which point I can login and return to work.  However,
in many cases, after entering the password and pressing "enter",
the login simply hangs, triggering only some disk activity.  If I
leave it alone for a few minnutes, it eventually presents me with a
screen containing the system time, at which point I can once again
provide input, returning to the login screen and signing in.

I have been frequently experiencing this issue on this laptop,
which has been running Bullseye since June.  It triggers whenever
the laptop suspends without a lid close, and I think it has triggered when
the laptop suspended with a lid-close.

I recently installed laptop-mode-tools, and did other power-saving
efforts, but the issue was present before then.

Lastly, I have found several other related threads about this issue,
but none seem to present a solution.  This includes gdm issue
618, and askUbuntu question 1140365.  I am not sure if this
is the same issue, but neither has received any attention, so I am filing this bug.

Attached is what I belive to be the relevant section of my syslog.

- -- System Information:
Debian Release: bullseye/sid
  APT prefers testing-debug
  APT policy: (500, 'testing-debug'), (500, 'testing')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.8.0-3-amd64 (SMP w/4 CPU threads)
Kernel taint flags: TAINT_WARN
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages gnome-shell depends on:
ii  dconf-gsettings-backend [gsettings-backend]  0.38.0-1
ii  evolution-data-server                        3.36.4-1
ii  gir1.2-accountsservice-1.0                   0.6.55-3
ii  gir1.2-atspi-2.0                             2.38.0-2
ii  gir1.2-freedesktop                           1.66.1-1
ii  gir1.2-gcr-3                                 3.38.0-1
ii  gir1.2-gdesktopenums-3.0                     3.38.0-2
ii  gir1.2-gdm-1.0                               3.38.1-2
ii  gir1.2-geoclue-2.0                           2.5.6-1
ii  gir1.2-glib-2.0                              1.66.1-1
ii  gir1.2-gnomebluetooth-1.0                    3.34.3-2
ii  gir1.2-gnomedesktop-3.0                      3.38.0-2
ii  gir1.2-gtk-3.0                               3.24.23-2
ii  gir1.2-gweather-3.0                          3.36.1-1
ii  gir1.2-ibus-1.0                              1.5.23-1
ii  gir1.2-mutter-7                              3.38.1-2
ii  gir1.2-nm-1.0                                1.27.91-1
ii  gir1.2-nma-1.0                               1.8.30-1
ii  gir1.2-pango-1.0                             1.46.2-1
ii  gir1.2-polkit-1.0                            0.105-29
ii  gir1.2-rsvg-2.0                              2.50.1+dfsg-1
ii  gir1.2-soup-2.4                              2.72.0-2
ii  gir1.2-upowerglib-1.0                        0.99.11-2
ii  gjs                                          1.66.1-1
ii  gnome-backgrounds                            3.38.0-1
ii  gnome-settings-daemon                        3.38.0-2
ii  gnome-shell-common                           3.38.1-1
ii  gsettings-desktop-schemas                    3.38.0-2
ii  gstreamer1.0-pipewire                        0.3.12-1
ii  libatk-bridge2.0-0                           2.38.0-1
ii  libatk1.0-0                                  2.36.0-2
ii  libc6                                        2.31-4
ii  libcairo2                                    1.16.0-4
ii  libecal-2.0-1                                3.36.4-1
ii  libedataserver-1.2-24                        3.36.4-1
ii  libgcr-base-3-1                              3.38.0-1
ii  libgdk-pixbuf2.0-0                           2.40.0+dfsg-5
ii  libgirepository-1.0-1                        1.66.1-1
ii  libgjs0g                                     1.66.1-1
ii  libgles2                                     1.3.2-1
ii  libglib2.0-0                                 2.66.1-2
ii  libglib2.0-bin                               2.66.1-2
ii  libgnome-autoar-0-0                          0.2.4-2
ii  libgnome-desktop-3-19                        3.38.0-2
ii  libgraphene-1.0-0                            1.10.2-1
ii  libgtk-3-0                                   3.24.23-2
ii  libical3                                     3.0.8-2
ii  libjson-glib-1.0-0                           1.6.0-1
ii  libmutter-7-0                                3.38.1-2
ii  libnm0                                       1.27.91-1
ii  libpango-1.0-0                               1.46.2-1
ii  libpangocairo-1.0-0                          1.46.2-1
ii  libpolkit-agent-1-0                          0.105-29
ii  libpolkit-gobject-1-0                        0.105-29
ii  libpulse-mainloop-glib0                      13.0-5
ii  libpulse0                                    13.0-5
ii  libsecret-1-0                                0.20.3-1
ii  libsystemd0                                  246.6-2
ii  libwayland-server0                           1.18.0-2~exp1.1
ii  libx11-6                                     2:1.6.12-1
ii  libxfixes3                                   1:5.0.3-2
ii  python3                                      3.8.2-3

Versions of packages gnome-shell recommends:
ii  bolt                  0.9-1
ii  chrome-gnome-shell    10.1-5
ii  gdm3                  3.38.1-2
ii  gkbd-capplet          3.26.1-1
ii  gnome-control-center  1:3.38.1-1
ii  gnome-menus           3.36.0-1
ii  gnome-user-docs       3.38.1-1
ii  ibus                  1.5.23-1
ii  iio-sensor-proxy      3.0-1
pn  switcheroo-control    <none>
ii  unzip                 6.0-25

Versions of packages gnome-shell suggests:
pn  gir1.2-telepathyglib-0.12   <none>
pn  gir1.2-telepathylogger-0.2  <none>

Versions of packages gnome-session depends on:
ii  gnome-session-bin      3.38.0-2
ii  gnome-session-common   3.38.0-2
ii  gnome-settings-daemon  3.38.0-2

Versions of packages gnome-session suggests:
ii  desktop-base   10.0.3
ii  gnome-keyring  3.36.0-1

Versions of packages gnome-settings-daemon depends on:
ii  gnome-settings-daemon-common  3.38.0-2
ii  gsettings-desktop-schemas     3.38.0-2
ii  libasound2                    1.2.3.2-1
ii  libc6                         2.31-4
ii  libcairo2                     1.16.0-4
ii  libcanberra-gtk3-0            0.30-7
ii  libcanberra0                  0.30-7
ii  libcolord2                    1.4.4-2
ii  libcups2                      2.3.3-3
ii  libfontconfig1                2.13.1-4.2
ii  libgcr-base-3-1               3.38.0-1
ii  libgdk-pixbuf2.0-0            2.40.0+dfsg-5
ii  libgeoclue-2-0                2.5.6-1
ii  libgeocode-glib0              3.26.2-2
ii  libglib2.0-0                  2.66.1-2
ii  libgnome-desktop-3-19         3.38.0-2
ii  libgtk-3-0                    3.24.23-2
ii  libgudev-1.0-0                234-1
ii  libgweather-3-16              3.36.1-1
ii  liblcms2-2                    2.9-4+b1
ii  libmm-glib0                   1.14.6-0.1
ii  libnm0                        1.27.91-1
ii  libnotify4                    0.7.9-1
ii  libnspr4                      2:4.29-1
ii  libnss3                       2:3.58-1
ii  libpam-systemd [logind]       246.6-2
ii  libpango-1.0-0                1.46.2-1
ii  libpangocairo-1.0-0           1.46.2-1
ii  libpolkit-gobject-1-0         0.105-29
ii  libpulse-mainloop-glib0       13.0-5
ii  libpulse0                     13.0-5
ii  libupower-glib3               0.99.11-2
ii  libwacom2                     1.5-1
ii  libwayland-client0            1.18.0-2~exp1.1
ii  libx11-6                      2:1.6.12-1
ii  libxext6                      2:1.3.3-1+b2
ii  libxi6                        2:1.7.10-1

Versions of packages gnome-settings-daemon recommends:
ii  iio-sensor-proxy   3.0-1
ii  pulseaudio         13.0-5
ii  x11-xserver-utils  7.7+8

Versions of packages gnome-settings-daemon suggests:
pn  usbguard  <none>

Versions of packages libgjs0g depends on:
ii  libc6                  2.31-4
ii  libcairo-gobject2      1.16.0-4
ii  libcairo2              1.16.0-4
ii  libffi7                3.3-4
ii  libgcc-s1              10.2.0-15
ii  libgirepository-1.0-1  1.66.1-1
ii  libglib2.0-0           2.66.1-2
ii  libmozjs-78-0          78.3.0-2
ii  libreadline8           8.0-4
ii  libstdc++6             10.2.0-15
ii  libx11-6               2:1.6.12-1

Versions of packages gnome-shell is related to:
ii  libegl-mesa0 [libegl-vendor]  20.1.9-1
ii  libgl1-mesa-dri               20.1.9-1
ii  libglx-mesa0 [libglx-vendor]  20.1.9-1

- -- no debconf information
-----BEGIN PGP SIGNATURE-----

iQJRBAEBCgA7FiEE/vC/PEGxsMPJ5u5w7/Xh1+DNmzIFAl+kTagdHGNhbHVtbGlr
ZXNhcHBsZXBpZUBnbWFpbC5jb20ACgkQ7/Xh1+DNmzJHag/9GelPuz2oaq5fpNhF
wHiFdYPWiHRdjSUIPCLuFijxr9uYfUL/bWRdAVzMAGWX2fZ4aZJmqkeS4G2bGdir
3YisUXsB7FOzuuZr/c613NhUHxgIUzEzneIjhrNHXlD4lJe1dk++2xS2nHt5Gh6K
g3v6UlxArRZXD26ZxPlnRbCkq0BJcrXesHXXVg+Ej+muwD5tlL7JVX4vWta+WNxt
X9dL5aW9baJZkBORyI30bIvSDEHVdx1/d4RigcYUfU+ZUYjj7l9svQ2uRVdJsZQp
qOjrXy46cenB/ooYUwIU8UheTxHnCVoDn7Jl9UR06acc6gUUq+mcfjQWvAsf6Jwy
ujxz45orLRnDzcxVWuWxTdEM0kRuNquw9VxWFNT48Kqz7PTFdud33CSuFX8uPcd+
boSh1djvvnYT2xgedRZztLUjL9Prlm3o0cp4wv92/eTo27ZRN4uV0LdFg+RFABcF
BJKOczU8h4H2mK3xJIx9l4K5KDdIGWNI42TezLtwPxp6cVtnId1TCTiDfERgKSV6
6bumlwemXPhWazooqJvbcGW1NX0riP79q1Ckyibactz/TBGisG8LlaP+r1z/YWIQ
mBSN54Ya6jT2kEMIrCIpJx3zflNd1GsLFsrwbn+D4jyISNQmZ+xCwzEj59TDC6tU
51FvlHRbbrFN8xQlA/AubMnZods=
=AxPt
-----END PGP SIGNATURE-----

#973831#10
Date:
2020-11-09 23:30:50 UTC
From:
To:
The bug is NOT triggered if I wait a few seconds before entering my
password.

#973831#15
Date:
2020-11-13 12:45:00 UTC
From:
To:
Control: tags -1 + moreinfo

To confirm what you are seeing, does it look like the second screenshot
here?
https://help.gnome.org/misc/release-notes/3.6/users-lock-screen.html.en

Are you using any GNOME Shell extensions? If you are, please try
disabling them and rebooting, and see whether this persists.

Are you using ordinary local storage for user accounts and passwords,
or are you using anything network-based like LDAP? Please send the
passwd, group and shadow lines from /etc/nsswitch.conf, and the
contents of /etc/pam.d/common-* and /etc/pam.d/gdm-password.

Do gnome-shell 3.38.1-3 and mutter 3.38.1-3, both available in
experimental, make any difference to this? These add patches from
upstream that will eventually be released as 3.38.2.

Some probably-unrelated fixes in those versions should at least reduce
the amount of noise in your system log, which might make it easier to
see what is going on.

Since this is timing-related, it might help to create a temporary user
account, change its password to be 1 letter long, and use that for
further testing, so that the time it takes you to actually type the
password doesn't have a significant effect.

One thing that might help here is if you can wake up the laptop at a
known time (for instance synchronize a clock with the laptop's and wake
it up when the seconds read :00), then note what the time is when you
press Enter after your password, and tell us those times so we can
correlate them with timestamps in the log.

Approximately how long in seconds do you need to wait between wakeup and
pressing Enter for the password, to make it reasonably reliable?

It would probably be useful to compare a system log from an attempt in
which you went too fast and saw this bug, and a system log in which you
waited a few seconds and did not see this bug.

Like the first screenshot here?
https://help.gnome.org/misc/release-notes/3.6/users-lock-screen.html.en

(That's the "lock screen" in user-facing documentation or the "screen
shield" in the source code.)

Is there any recent version that *didn't* have this issue?

If you have experienced this ever since upgrading from buster to
bullseye, then it's going to be difficult to isolate which specific
component triggers this: it could be gnome-shell or mutter, but it
could also be influenced by the user-space graphics drivers (Mesa)
or by the kernel.

(That's https://gitlab.gnome.org/GNOME/gdm/-/issues/618)

Do you have any autofs or systemd automount units to mount network shares?

(That's
https://askubuntu.com/questions/1140365/18-04-login-screens-hangs-after-suspend-or-lock)

Diagnosing bugs from unclear symptoms is really difficult to do,
particularly if a developer doesn't see the same symptoms themselves,
so what attention these have received will often take the form of:
developer looks at bug report, developer thinks "I have no idea what's
going on here", developer works on something they *can* solve instead.

    smcv

#973831#22
Date:
2020-11-21 11:26:24 UTC
From:
To:
The bug reporter contacted me by private email to say that disabling
the drive-menu extension avoids this; so this is probably a bug in that
extension, or perhaps in how it interacts with GNOME Online Accounts.

Calum, please could you send the details you sent me to the bug's email
address <973831@bugs.debian.org>, if you do not consider them to be
private information?

Thanks,
    smcv

#973831#37
Date:
2020-11-21 18:36:53 UTC
From:
To:
I really need to fix my defaults: Evolution usually warns me when I
accidentally reply privately to a public mail, but apparently it forgot to
this time.

Below is the full text of my original mail.

==========================================================================

I'm sorry it took 15 days to respond to this: life got real busy, and I
didn't have the time to work on reproducing it and writing a mail.

The TLDR is that this is a bug with an extension interacting with gnome
online accounts, not one in the Shell itself.

My adventures in reproducing this are attached as shell-repro: they also
explain which extension (the one which adds a monitor for removable
storage, which is an official GNOME extension AFAIK).

Yes, thats it exactly.  The actual hang it when it has the password (as
dots) in the text field, and a spinning wheel to its right.  The wheel
speeds at a fairly constant rate.
removable USB's, which I belive is an official extension.

Nope, standard local storage.  I move my laptop around a lot, and its
disconnected from the internet frequently, so I don't even have any sort
of network drives (though I have set up my Google Drive account, it
doesn't mount automatically)(I think)

I never tried with those, since the extension tweaking got it to work.

When I first reported the bug, I hadn't made any concerted effort to
determine its causes (though I had some suspicions).  My password is
fairly short anyways, and the window of time in which the bug occurs is
pretty long: at least 10-20 seconds.
reproduce: I like shortening things to make their names meaningless!)
contains that information.

Unfortunately, the first thing I discovered was that there was no way to
force the bug to occur, short of waiting for the system to idle and
suspend itself.

About 20 seconds.  The trick is to wait for disk activity to halt (more
detail in the repro. notes)

Attached.


Not that I know of.

No(t that I know of).  I have set up GNOME's online accounts service to
work with Google Drive, however, AFAIK, it's not auto-mounted (I rarely
use it).

Was it rude to just give the number instead of the link? I wasn't sure
what typical best practice was, and I didn't want to risk linkrot.

WHAT?  You don't have a magic crystal ball to see into the reporters mind
when they send you cryptic, brief emails, and then doesn't respond to your
request for clarification for two weeks?

What kind of developer are you?!?!?!

Thanks,
Calum