Saving keyring passwords in the login keyring breaks the daemon.
Whenever a keyring password is saved in the "login" collection, the daemon becomes unable to list collections properly.
Steps to reproduce, using Seahorse:
- Ensure the "login" keyring exists and is unlocked.
- Create a new keyring called "Test".
- Set a password for this "Test" keyring, like "123".
- Click the padlock icon to lock the "Test" keyring.
- Click the padlock icon again, to unlock the "Test" keyring.
- Type in the password ("123"), and leave the option "Automatically unlock this keyring whenever I'm logged in" enabled.
After this point, the keyring becomes unstable. Closing and opening Seahorse again, the "login" collection will disappear from Seahorse, and often other collections as well.
Applications that use libsecret will also fail when calling secret_service_get*()
.
Seahorse reports this error in the journal:
gkr-backend.vala:89: couldn't load all secret collections: No such secret item at path: /org/freedesktop/secrets/collection/login/1
Restarting gnome-keyring-daemon
fixes the problem. All collections show up correctly in Seahorse, and other applications are able to get the SecretService
object.
This behavior has been observed in versions 42.1 and 46.1.