这是indexloc提供的服务,不要输入任何密码
Skip to content

Vorta creates new D-Bus connection for each Secret Service request, causing KeepassXC to not remember user authorisation #2240

@Franz1007orRimzet

Description

@Franz1007orRimzet

Description

Whenever vorta is trying to request passphrase to a repo (local repokey-blake2) from secretstorage, KeepassXC dialog appears asking for allowing access to an entry, even when within single session(both vorta and keepassxc kept running) access has been allowed and choice was set to be remembered.

At first I thought it is a problem with KeepassXC, but after investigating 'Secret Service Integration > Authorization' tab in KeepassXC I found multiple entries pointing to the same pid (pid of '/usr/bin/python /usr/bin/vorta --daemonize') with different dbus addresses. Running 'dbus-monitor --session "type='method_call',interface='org.freedesktop.Secret.Service'"' confirmed that vorta creates new dbus connection whenever it tries to access passphrase stored in secretstorage. I am not even sure if previous connections are closed.

Expected behavior

Vorta should establish only one dbus connection and use it for every Secret Service request. This way KeepassXC would be able to remember user choice within session.
Alternatively vorta could cache passphrase in memory after it is retrieved, avoiding need to request a passphrase more than once in each session.

I was able to reproduce the issue.

Steps to reproduce:

  1. Unlock KeepassXC database.
  2. Run 'dbus-monitor --session "type='method_call',interface='org.freedesktop.Secret.Service'"' in terminal and observe.
  3. Open Vorta
  4. KeepassXC prompt appears asking to allow Vorta access the passphrase, select 'Allow All & Future' with 'Remember' checked.
  5. Go to 'Archives' tab in Vorta, click 'Refresh archive list', KeepassXC prompt appears as before, select the same options as before.
  6. dbus-monitor shows that requests made by Vorta are incoming from different dbus address each time.
  7. In KeepassXC in "Application Settings > Secret Service Integration > Authorization" you can see multiple connections from the same Vorta pid.

Environment

  • OS: Arch Linux (Hyprland)
  • Vorta version: 0.10.3
  • Installed from: Arch Official Repositories
  • Borg version: 1.4.1
  • KeepassXC version: 2.7.10

Logs

2025-05-25 22:39:49,031 - vorta.i18n - DEBUG - Loading translation failed for ['C'].
2025-05-25 22:39:49,306 - root - INFO - Using NetworkManagerMonitor NetworkStatusMonitor implementation.
2025-05-25 22:39:49,322 - vorta.scheduler - DEBUG - Nothing scheduled for profile 1 because of unset repo.
2025-05-25 22:39:49,328 - vorta.scheduler - DEBUG - Nothing scheduled for profile 1 because of unset repo.
2025-05-25 22:39:49,335 - vorta.scheduler - DEBUG - Nothing scheduled for profile 1 because of unset repo.
2025-05-25 22:39:49,375 - vorta.borg.jobs_manager - DEBUG - Add job for site default
2025-05-25 22:39:49,375 - vorta.borg.jobs_manager - DEBUG - Start job on site: default
2025-05-25 22:39:49,380 - vorta.borg.borg_job - INFO - Running command /usr/bin/borg --version
2025-05-25 22:39:49,816 - vorta.borg.jobs_manager - DEBUG - Finish job for site: default
2025-05-25 22:39:49,816 - vorta.borg.jobs_manager - DEBUG - No more jobs for site: default
2025-05-25 22:39:49,817 - vorta.scheduler - DEBUG - Refreshing all scheduler timers
2025-05-25 22:39:49,821 - vorta.scheduler - DEBUG - Nothing scheduled for profile 1 because of unset repo.
2025-05-25 22:44:59,058 - vorta.application - INFO - An instance of Vorta is already running. Opening main window.
2025-05-25 22:54:48,827 - vorta.scheduler - DEBUG - Refreshing all scheduler timers
2025-05-25 22:54:48,831 - vorta.scheduler - DEBUG - Nothing scheduled for profile 1 because of unset repo.
2025-05-25 23:09:48,733 - vorta.scheduler - DEBUG - Refreshing all scheduler timers
2025-05-25 23:09:48,737 - vorta.scheduler - DEBUG - Nothing scheduled for profile 1 because of unset repo.
2025-05-25 23:24:48,816 - vorta.scheduler - DEBUG - Refreshing all scheduler timers
2025-05-25 23:24:48,820 - vorta.scheduler - DEBUG - Nothing scheduled for profile 1 because of unset repo.
2025-05-25 23:39:48,803 - vorta.scheduler - DEBUG - Refreshing all scheduler timers
2025-05-25 23:39:48,807 - vorta.scheduler - DEBUG - Nothing scheduled for profile 1 because of unset repo.
2025-05-25 23:40:37,115 - vorta.keyring.abc - DEBUG - No module named 'objc'
2025-05-25 23:40:37,169 - asyncio - DEBUG - Using selector: EpollSelector
2025-05-25 23:40:37,171 - vorta.keyring.abc - DEBUG - Using VortaSecretStorageKeyring
2025-05-25 23:41:28,102 - vorta.keyring.abc - DEBUG - No module named 'objc'
2025-05-25 23:41:28,104 - asyncio - DEBUG - Using selector: EpollSelector
2025-05-25 23:41:28,106 - vorta.keyring.abc - DEBUG - Using VortaSecretStorageKeyring
2025-05-25 23:41:39,592 - asyncio - DEBUG - Using selector: EpollSelector
2025-05-25 23:41:39,607 - vorta.keyring.secretstorage - DEBUG - Found 0 passwords matching repo URL.
2025-05-25 23:42:26,257 - vorta.keyring.abc - DEBUG - No module named 'objc'
2025-05-25 23:42:26,259 - asyncio - DEBUG - Using selector: EpollSelector
2025-05-25 23:42:26,261 - vorta.keyring.abc - DEBUG - Using VortaSecretStorageKeyring
2025-05-25 23:54:48,795 - vorta.scheduler - DEBUG - Refreshing all scheduler timers
2025-05-25 23:54:48,798 - vorta.scheduler - DEBUG - Nothing scheduled for profile 1 because of unset repo.
2025-05-26 00:09:48,831 - vorta.scheduler - DEBUG - Refreshing all scheduler timers
2025-05-26 00:09:48,836 - vorta.scheduler - DEBUG - Nothing scheduled for profile 1 because of unset repo.
2025-05-26 00:24:48,831 - vorta.scheduler - DEBUG - Refreshing all scheduler timers
2025-05-26 00:24:48,836 - vorta.scheduler - DEBUG - Nothing scheduled for profile 1 because of unset repo.
2025-05-26 00:39:48,796 - vorta.scheduler - DEBUG - Refreshing all scheduler timers
2025-05-26 00:39:48,800 - vorta.scheduler - DEBUG - Nothing scheduled for profile 1 because of unset repo.
2025-05-26 00:54:48,827 - vorta.scheduler - DEBUG - Refreshing all scheduler timers
2025-05-26 00:54:48,831 - vorta.scheduler - DEBUG - Nothing scheduled for profile 1 because of unset repo.
2025-05-26 23:17:22,767 - vorta.i18n - DEBUG - Loading translation failed for ['C'].
2025-05-26 23:17:23,091 - root - INFO - Using NetworkManagerMonitor NetworkStatusMonitor implementation.
2025-05-26 23:17:23,108 - vorta.scheduler - DEBUG - Nothing scheduled for profile 1 because of unset repo.
2025-05-26 23:17:23,116 - vorta.scheduler - DEBUG - Nothing scheduled for profile 1 because of unset repo.
2025-05-26 23:17:23,123 - vorta.scheduler - DEBUG - Nothing scheduled for profile 1 because of unset repo.
2025-05-26 23:17:23,167 - vorta.borg.jobs_manager - DEBUG - Add job for site default
2025-05-26 23:17:23,168 - vorta.borg.jobs_manager - DEBUG - Start job on site: default
2025-05-26 23:17:23,173 - vorta.borg.borg_job - INFO - Running command /usr/bin/borg --version
2025-05-26 23:17:23,547 - vorta.borg.jobs_manager - DEBUG - Finish job for site: default
2025-05-26 23:17:23,547 - vorta.borg.jobs_manager - DEBUG - No more jobs for site: default
2025-05-26 23:17:23,548 - vorta.scheduler - DEBUG - Refreshing all scheduler timers
2025-05-26 23:17:23,551 - vorta.scheduler - DEBUG - Nothing scheduled for profile 1 because of unset repo.
2025-05-26 23:17:32,596 - vorta.keyring.abc - DEBUG - No module named 'objc'
2025-05-26 23:17:32,658 - asyncio - DEBUG - Using selector: EpollSelector
2025-05-26 23:17:32,660 - vorta.keyring.abc - DEBUG - Using VortaSecretStorageKeyring
2025-05-26 23:18:18,239 - vorta.keyring.abc - DEBUG - No module named 'objc'
2025-05-26 23:18:18,241 - asyncio - DEBUG - Using selector: EpollSelector
2025-05-26 23:18:18,244 - vorta.keyring.abc - DEBUG - Using VortaSecretStorageKeyring
2025-05-26 23:18:18,245 - asyncio - DEBUG - Using selector: EpollSelector
2025-05-26 23:18:18,246 - vorta.keyring.secretstorage - DEBUG - Found 0 passwords matching repo URL.
2025-05-26 23:19:11,947 - vorta.keyring.abc - DEBUG - No module named 'objc'
2025-05-26 23:19:11,949 - asyncio - DEBUG - Using selector: EpollSelector
2025-05-26 23:19:11,952 - vorta.keyring.abc - DEBUG - Using VortaSecretStorageKeyring
2025-05-26 23:19:17,830 - vorta.keyring.abc - DEBUG - No module named 'objc'
2025-05-26 23:19:17,832 - asyncio - DEBUG - Using selector: EpollSelector
2025-05-26 23:19:17,835 - vorta.keyring.abc - DEBUG - Using VortaSecretStorageKeyring
2025-05-26 23:19:17,835 - vorta.borg.borg_job - DEBUG - Using VortaSecretStorageKeyring keyring to store passwords.
2025-05-26 23:19:17,836 - asyncio - DEBUG - Using selector: EpollSelector
2025-05-26 23:19:17,837 - vorta.keyring.secretstorage - DEBUG - Found 0 passwords matching repo URL.
2025-05-26 23:19:17,838 - vorta.borg.borg_job - DEBUG - Password not found in primary keyring. Falling back to VortaDBKeyring.
2025-05-26 23:19:17,840 - vorta.borg.jobs_manager - DEBUG - Add job for site default
2025-05-26 23:19:17,841 - vorta.borg.jobs_manager - DEBUG - Start job on site: default
2025-05-26 23:19:17,853 - vorta.borg.borg_job - INFO - Running command /usr/bin/borg init --info --log-json --encryption=repokey-blake2 /mnt/Data/ArchUserBackup
2025-05-26 23:19:18,156 - vorta.borg.borg_job - INFO - Initializing repository at "/mnt/Data/ArchUserBackup"
2025-05-26 23:19:18,276 - vorta.borg.borg_job - INFO - Key in "<Repository /mnt/Data/ArchUserBackup>" created.
2025-05-26 23:19:18,277 - vorta.borg.borg_job - INFO - Keep this key safe. Your data will be inaccessible without it.
2025-05-26 23:19:18,628 - vorta.borg.borg_job - INFO - Synchronizing chunks cache...
2025-05-26 23:19:18,629 - vorta.borg.borg_job - INFO - Archives: 0, w/ cached Idx: 0, w/ outdated Idx: 0, w/o cached Idx: 0.
2025-05-26 23:19:18,630 - vorta.borg.borg_job - INFO - Done.
2025-05-26 23:19:18,656 - vorta.borg.borg_job - WARNING - 
IMPORTANT: you will need both KEY AND PASSPHRASE to access this repo!

Key storage location depends on the mode:
- repokey modes: key is stored in the repository directory.
- keyfile modes: key is stored in the home directory of this user.

For any mode, you should:
1. Export the borg key and store the result at a safe place:
   borg key export           REPOSITORY encrypted-key-backup
   borg key export --paper   REPOSITORY encrypted-key-backup.txt
   borg key export --qr-html REPOSITORY encrypted-key-backup.html
2. Write down the borg key passphrase and store it at safe place.

2025-05-26 23:19:18,809 - asyncio - DEBUG - Using selector: EpollSelector
2025-05-26 23:19:18,850 - vorta.keyring.secretstorage - DEBUG - Saved password for repo /mnt/Data/ArchUserBackup
2025-05-26 23:19:18,854 - vorta.borg.jobs_manager - DEBUG - Finish job for site: default
2025-05-26 23:19:18,854 - vorta.borg.jobs_manager - DEBUG - No more jobs for site: default
2025-05-26 23:19:18,984 - vorta.keyring.abc - DEBUG - No module named 'objc'
2025-05-26 23:19:18,985 - asyncio - DEBUG - Using selector: EpollSelector
2025-05-26 23:19:18,987 - vorta.keyring.abc - DEBUG - Using VortaSecretStorageKeyring
2025-05-26 23:19:18,987 - vorta.borg.borg_job - DEBUG - Using VortaSecretStorageKeyring keyring to store passwords.
2025-05-26 23:19:18,988 - asyncio - DEBUG - Using selector: EpollSelector
2025-05-26 23:19:18,989 - vorta.keyring.secretstorage - DEBUG - Found 1 passwords matching repo URL.
2025-05-26 23:19:26,757 - vorta.keyring.secretstorage - DEBUG - Retrieved password for repo /mnt/Data/ArchUserBackup
2025-05-26 23:19:26,784 - vorta.borg.jobs_manager - DEBUG - Add job for site 1
2025-05-26 23:19:26,785 - vorta.borg.jobs_manager - DEBUG - Start job on site: 1
2025-05-26 23:19:26,790 - vorta.borg.borg_job - INFO - Running command /usr/bin/borg list --info --log-json --json /mnt/Data/ArchUserBackup
2025-05-26 23:19:27,246 - vorta.borg.jobs_manager - DEBUG - Finish job for site: 1
2025-05-26 23:19:27,246 - vorta.borg.jobs_manager - DEBUG - No more jobs for site: 1
2025-05-26 23:19:27,249 - vorta.scheduler - DEBUG - Scheduler for profile 1 is disabled.
2025-05-26 23:19:56,241 - vorta.scheduler - INFO - Setting timer for profile 1
2025-05-26 23:19:56,243 - vorta.scheduler - INFO - Nothing scheduled for profile 1 because it would be the first backup for this profile.
2025-05-26 23:19:59,218 - vorta.scheduler - INFO - Setting timer for profile 1
2025-05-26 23:19:59,221 - vorta.scheduler - INFO - Nothing scheduled for profile 1 because it would be the first backup for this profile.
2025-05-26 23:20:34,433 - vorta.scheduler - INFO - Setting timer for profile 1
2025-05-26 23:20:34,435 - vorta.scheduler - INFO - Nothing scheduled for profile 1 because it would be the first backup for this profile.
2025-05-26 23:20:34,875 - vorta.scheduler - INFO - Setting timer for profile 1
2025-05-26 23:20:34,877 - vorta.scheduler - INFO - Nothing scheduled for profile 1 because it would be the first backup for this profile.
2025-05-26 23:20:35,309 - vorta.scheduler - INFO - Setting timer for profile 1
2025-05-26 23:20:35,312 - vorta.scheduler - INFO - Nothing scheduled for profile 1 because it would be the first backup for this profile.
2025-05-26 23:22:35,896 - vorta.keyring.abc - DEBUG - No module named 'objc'
2025-05-26 23:22:35,898 - asyncio - DEBUG - Using selector: EpollSelector
2025-05-26 23:22:35,901 - vorta.keyring.abc - DEBUG - Using VortaSecretStorageKeyring
2025-05-26 23:22:35,901 - vorta.borg.borg_job - DEBUG - Using VortaSecretStorageKeyring keyring to store passwords.
2025-05-26 23:22:35,902 - asyncio - DEBUG - Using selector: EpollSelector
2025-05-26 23:22:35,904 - vorta.keyring.secretstorage - DEBUG - Found 1 passwords matching repo URL.
2025-05-26 23:22:40,524 - vorta.keyring.secretstorage - DEBUG - Retrieved password for repo /mnt/Data/ArchUserBackup
2025-05-26 23:22:40,553 - vorta.notifications - DEBUG - notification not suppressed
2025-05-26 23:24:00,737 - vorta.views.source_tab - DEBUG - Added item number 0 from 1
2025-05-26 23:24:00,737 - vorta.views.source_tab - DEBUG - Updating source in row 0.
2025-05-26 23:24:00,739 - vorta.views.source_tab - DEBUG - Updated info for previously added item.
2025-05-26 23:31:51,033 - vorta.keyring.abc - DEBUG - No module named 'objc'
2025-05-26 23:31:51,035 - asyncio - DEBUG - Using selector: EpollSelector
2025-05-26 23:31:51,038 - vorta.keyring.abc - DEBUG - Using VortaSecretStorageKeyring
2025-05-26 23:31:51,038 - vorta.borg.borg_job - DEBUG - Using VortaSecretStorageKeyring keyring to store passwords.
2025-05-26 23:31:51,038 - asyncio - DEBUG - Using selector: EpollSelector
2025-05-26 23:31:51,040 - vorta.keyring.secretstorage - DEBUG - Found 1 passwords matching repo URL.
2025-05-26 23:31:52,478 - vorta.keyring.secretstorage - DEBUG - Retrieved password for repo /mnt/Data/ArchUserBackup
2025-05-26 23:31:52,513 - vorta.borg.jobs_manager - DEBUG - Add job for site 1
2025-05-26 23:31:52,513 - vorta.borg.jobs_manager - DEBUG - Start job on site: 1
2025-05-26 23:31:52,526 - vorta.borg.borg_job - INFO - Running command /usr/bin/borg create --list --progress --info --log-json --json --filter=AM -C zstd,8 --exclude-if-present .nobackup --exclude-if-present CACHEDIR.TAG --exclude-from /tmp/tmpnuzf1tys /mnt/Data/ArchUserBackup::architect-2025-05-26-233152 /home/franz
2025-05-26 23:31:52,846 - vorta.borg.borg_job - INFO - Creating archive at "/mnt/Data/ArchUserBackup::architect-2025-05-26-233152"
2025-05-26 23:32:22,726 - vorta.scheduler - DEBUG - Refreshing all scheduler timers
2025-05-26 23:32:22,730 - vorta.scheduler - INFO - Setting timer for profile 1
2025-05-26 23:32:22,731 - vorta.scheduler - DEBUG - Scheduling next run for 2025-05-27 03:42:00
2025-05-26 23:47:22,728 - vorta.scheduler - DEBUG - Refreshing all scheduler timers
2025-05-26 23:47:22,731 - vorta.scheduler - INFO - Setting timer for profile 1
2025-05-26 23:47:22,732 - vorta.scheduler - DEBUG - Scheduling next run for 2025-05-27 03:42:00
2025-05-26 23:54:00,774 - vorta.views.source_tab - DEBUG - Updating sources (1)
2025-05-26 23:54:00,775 - vorta.views.source_tab - DEBUG - Updating source in row 0.
2025-05-27 00:02:22,727 - vorta.scheduler - DEBUG - Refreshing all scheduler timers
2025-05-27 00:02:22,734 - vorta.scheduler - INFO - Setting timer for profile 1
2025-05-27 00:02:22,737 - vorta.scheduler - DEBUG - Scheduling next run for 2025-05-27 03:42:00
2025-05-27 00:17:22,727 - vorta.scheduler - DEBUG - Refreshing all scheduler timers
2025-05-27 00:17:22,733 - vorta.scheduler - INFO - Setting timer for profile 1
2025-05-27 00:17:22,736 - vorta.scheduler - DEBUG - Scheduling next run for 2025-05-27 03:42:00
2025-05-27 00:32:22,726 - vorta.scheduler - DEBUG - Refreshing all scheduler timers
2025-05-27 00:32:22,729 - vorta.scheduler - INFO - Setting timer for profile 1
2025-05-27 00:32:22,731 - vorta.scheduler - DEBUG - Scheduling next run for 2025-05-27 03:42:00
2025-05-27 00:47:22,726 - vorta.scheduler - DEBUG - Refreshing all scheduler timers
2025-05-27 00:47:22,731 - vorta.scheduler - INFO - Setting timer for profile 1
2025-05-27 00:47:22,733 - vorta.scheduler - DEBUG - Scheduling next run for 2025-05-27 03:42:00

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions