Skip to content

ChainerBackend not deleting password from lower priority backend #697

Description

@jim-easterbrook

Describe the bug
Using kdewallet I can see old keyring passwords listed in "Secret Service". New keyring passwords are listed under the "system" passed to set_password. I assume this is because I previously did not have keyring.backends.kwallet.DBusKeyring installed.

$ python3.11 -m keyring --list-backends
keyring.backends.chainer.ChainerBackend (priority: 10)
keyring.backends.kwallet.DBusKeyring (priority: 5.1)
keyring.backends.SecretService.Keyring (priority: 5)
keyring.backends.fail.Keyring (priority: 0)

$ python3.11 -m keyring get system username correctly finds the old passwords. $ python3.11 -m keyring del system username fails as follows:

Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/home/jim/.local/lib/python3.11/site-packages/keyring/__main__.py", line 4, in <module>
    cli.main()
  File "/home/jim/.local/lib/python3.11/site-packages/keyring/cli.py", line 216, in main
    return cli.run(argv)
           ^^^^^^^^^^^^^
  File "/home/jim/.local/lib/python3.11/site-packages/keyring/cli.py", line 120, in run
    return method()
           ^^^^^^^^
  File "/home/jim/.local/lib/python3.11/site-packages/keyring/cli.py", line 157, in do_del
    delete_password(self.service, self.username)
  File "/home/jim/.local/lib/python3.11/site-packages/keyring/core.py", line 73, in delete_password
    get_keyring().delete_password(service_name, username)
  File "/home/jim/.local/lib/python3.11/site-packages/keyring/backends/chainer.py", line 63, in delete_password
    return keyring.delete_password(service, username)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jim/.local/lib/python3.11/site-packages/keyring/backends/kwallet.py", line 150, in delete_password
    raise PasswordDeleteError("Password not found")
keyring.errors.PasswordDeleteError: Password not found

Expected behavior
I would expect to be able to delete any password that I can read.

Environment

  • OS: openSUSE 15.6
$ python3.11 -m pip list | grep keyring
keyring                       25.4.1

$ python3.11 -m keyring --list-backends
keyring.backends.chainer.ChainerBackend (priority: 10)
keyring.backends.kwallet.DBusKeyring (priority: 5.1)
keyring.backends.SecretService.Keyring (priority: 5)
keyring.backends.fail.Keyring (priority: 0)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions