Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
gdm: Prevent login problems with many users
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