Skip to content

Commit

Permalink
gdm: Prevent login problems with many users
Browse files Browse the repository at this point in the history
The patch works around a problem which sometimes froze gdm after
entering the password. It depends on timing with nis and the number of
users.

Patch description:

From: Donald Buczek <buczek@molgen.mpg.de>
Date: Tue, 17 Oct 2017 12:38:25 +0200
Subject: [PATCH] GdmSessionWorker: Wait for ActUserManager

We implicitly access the (singleton) ActUserManager via
GdmSessionSettings.

ActUserManager provided by libaccountsservice does asynchronous
method invocations via dbus to the account service daemon
(accountsdaemon.service). Depending on the number of users and the
definition of the user database (which may involve rpc calls in the
NIS case), the response to the ListCachedUsers call may take an
undefined amount of time.

We need to execute our main loop to get the responses for the
asynchronous method invocations processed and delivered to
ActUserManager.

However, the current implementation of the pam services does synchronous
method calls over the dbus and we don't return to our main loop while we
are waiting for the user to enter the username or the password. If
ActUserManger didn't complete its setup before we get into that state
and the user needs longer then a dbus specific timeout (several
seconds) to enter his data, the dbus daemon will delete the reply and
the login process doesn't complete.

The fix here is to check that ActUserManager has completed its setup
before we switch to the states involving pam.
  • Loading branch information
donald committed Oct 17, 2017
1 parent 25d15d3 commit 548f7b6
Showing 1 changed file with 1 addition and 0 deletions.
1 change: 1 addition & 0 deletions gdm.be0
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ SRCURL[0]="http://ftp.gnome.org/pub/gnome/sources/gdm/${PKGVERSION[2]}/gdm-${PKG

PATCHURL[0]="/src/mariux/download/gdm-3.4.1-0002-greeter-disable-handling-of-ESC-in-login-window.patch"
PATCHURL[1]="/src/mariux/download/gdm-3.4.1-0003-greeter-never-show-cancel-button-in-login-window.patch"
PATCHURL[2]="/src/mariux/patches/gdm-0001-GdmSessionWorker-Wait-for-ActUserManager.patch"

LIBEXECDIR=/usr/lib/gdm
LOCALSTATEDIR=/var
Expand Down

0 comments on commit 548f7b6

Please sign in to comment.