** Also affects: duplicity (Ubuntu)
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to duplicity in Ubuntu.
https://bugs.launchpad.net/bugs/1828761
Title:
Incremental backups do not validate passphrase
Status in Duplicity:
New
Status in duplicity package in Ubuntu:
New
Bug description:
This was reported in a comment on another bug, but I think this is serious
enough to warrant its own one. It broke my incremental backups and I just
happened to notice.
The report with repro steps is
https://bugs.launchpad.net/duplicity/+bug/918489/comments/22
The expected behavior would be to fail on invalid passphrases on incremental
backups (or otherwise make it very clear that this is the user's
responsibility).
I seem to remember testing this in the past and verifying that an error is
raised.
Right now, it leads to corruption and a beautiful stack trace followed by a
hanging application when trying to verify or restore:
GPG error detail: Traceback (innermost last):
File "/bin/duplicity", line 1560, in <module>
with_tempdir(main)
File "/bin/duplicity", line 1546, in with_tempdir
fn()
File "/bin/duplicity", line 1398, in main
do_backup(action)
File "/bin/duplicity", line 1479, in do_backup
verify(col_stats)
File "/bin/duplicity", line 875, in verify
for backup_ropath, current_path in collated:
File "/usr/lib/python2.7/site-packages/duplicity/diffdir.py", line 276, in
collate2iters
relem1 = riter1.next()
File "/usr/lib/python2.7/site-packages/duplicity/patchdir.py", line 521, in
integrate_patch_iters
for patch_seq in collated:
File "/usr/lib/python2.7/site-packages/duplicity/diffdir.py", line 286, in
collate2iters
relem2 = riter2.next()
File "/usr/lib/python2.7/site-packages/duplicity/patchdir.py", line 121, in
difftar2path_iter
tarinfo_list = [tar_iter.next()]
File "/usr/lib/python2.7/site-packages/duplicity/patchdir.py", line 344, in
next
self.set_tarfile()
File "/usr/lib/python2.7/site-packages/duplicity/patchdir.py", line 332, in
set_tarfile
assert not self.current_fp.close()
File "/usr/lib/python2.7/site-packages/duplicity/dup_temp.py", line 227, in
close
assert not self.fileobj.close()
File "/usr/lib/python2.7/site-packages/duplicity/gpg.py", line 305, in close
self.gpg_failed()
File "/usr/lib/python2.7/site-packages/duplicity/gpg.py", line 272, in
gpg_failed
raise GPGError(msg)
GPGError: GPG Failed, see log below:
===== Begin GnuPG log =====
gpg: AES encrypted data
gpg: encrypted with 1 passphrase
gpg: decryption failed: Bad session key
===== End GnuPG log =====
GPGError: GPG Failed, see log below:
===== Begin GnuPG log =====
gpg: AES encrypted data
gpg: encrypted with 1 passphrase
gpg: decryption failed: Bad session key
===== End GnuPG log =====
If left unnoticed, the only way to go about it is manual recovery.
I'm updating my backup scripts to do some basic validation of the passphrase
to make sure that a simple typo will not break my backups in the future.
duplicity 0.7.18.2 on Arch Linux, Python 3.7.3.
To manage notifications about this bug go to:
https://bugs.launchpad.net/duplicity/+bug/1828761/+subscriptions
--
Mailing list: https://launchpad.net/~desktop-packages
Post to : [email protected]
Unsubscribe : https://launchpad.net/~desktop-packages
More help : https://help.launchpad.net/ListHelp