In the case a service is not available (as it can be in the fingereprint case when a supported reader is available but has not enrolled prints) we were trying indefinitely to restart it, however this can lead to troubles since commit 7a2e629b as when the service conversation was stopped we had no way to figure out this case and we'd end up to eventually fail the whole authentication. However, in such cases the PAM services are expected to return a PAM_AUTHINFO_UNAVAIL and gdm to handle it, emitting service-unavailable signal. So connect to ::service-unavailable and keep track of the unavailable services so that we can avoid retrying with them. In case such service is not the foreground one, we can just silently ignore the error as we did before commit 7a2e629b, without bothering failing the whole verification. In case we got a valid error message on service-unavailable, we also show it, this is normally not happening unless GDM isn't redirecting here other kind of problems (such as MAXTRIES) which are supposed to stop the authentication stopping any further retry. Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3734 Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1683>
GNOME Shell
GNOME Shell provides core user interface functions for the GNOME 3 desktop, like switching to windows and launching applications. GNOME Shell takes advantage of the capabilities of modern graphics hardware and introduces innovative user interface concepts to provide a visually attractive and easy to use experience.
For more information about GNOME Shell, including instructions on how to build GNOME Shell from source and how to get involved with the project, see the project wiki.
Bugs should be reported to the GNOME bug tracking system.
Contributing
To contribute, open merge requests at https://gitlab.gnome.org/GNOME/gnome-shell.
Commit messages should follow the GNOME commit message guidelines. We require an URL to either an issue or a merge request in each commit.
License
GNOME Shell is distributed under the terms of the GNU General Public License, version 2 or later. See the COPYING file for details.