Why lightdm behaves the way it does… In common/user-list.c, load_users() calls load_passwd_file(). The intended code path is is for load_passwd_file() to make use of the org.freedesktop.Accounts.ListCachedUsers DBus call.[1] However, due to the accounts-daemon failure[2], it falls back on the slow code path, which calls load_passwd_file(), which then calls make_passwd_user() for every single user.[3] That results in a check for the existence of ~/.face and ~/.face.icon for potentially thousands of LDAP users, possibly with NFS-mounted home directories!
[1]: https://bazaar.launchpad.net/~lightdm-team/lightdm/1.10/view/1995/common/user-list.c#L908 [2]: https://bugs.launchpad.net/ubuntu/+source/accountsservice/+bug/1350393/comments/4 [3]: https://bazaar.launchpad.net/~lightdm-team/lightdm/1.10/view/1995/common/user-list.c#L264 -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to accountsservice in Ubuntu. https://bugs.launchpad.net/bugs/1350393 Title: Recent accountsservice update causes login window to hang Status in Light Display Manager: New Status in accountsservice package in Ubuntu: Confirmed Bug description: Hi, The recent 0.6.35-0ubuntu7.1 update (see https://bugs.launchpad.net/ubuntu/+source/accountsservice/+bug/1290785) seems to have removed the UID_MAX check, which could be used to hide users from the login window. In a large organization where many thousands of users are present on our systems, we relied on the UID_MAX setting in /etc/login.defs to prevent accounts-daemon from trying to frob all our accounts. accounts-daemon's performance is so poor, that not having the UID_MAX check causes lightdm to hang for 5-10mins while accounts-daemon tries to look for something in every users home folder. I've already done things like set the login window to require the user to enter their username and password rather than list all users, but the login window still hangs while accounts-daemon is doing its thing. The behavior I see, is: 1) just after boot, there's a black screen, right after the plymouth splash disappears, for 2-3 minutes before lightdm appears 2) You type a username into the username field and press 'Tab' 3) lightdm appears to hang for 5-10mins before the cursor moves to the password field. During this time, I see an accounts-daemon spawn for each user on the system, sequentially (in alphabetical order). Once the last user's accounts-daemon process finishes, the cursor moves to the password field. This not only happens on first boot, but every time a user logs out and the system returns to the login window. Any chance we can have the UID_MAX check back? Or some equivalent? This is causing a serious problem for us! Thanks! To manage notifications about this bug go to: https://bugs.launchpad.net/lightdm/+bug/1350393/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp