I have also replicated the bug, on Ubuntu 14.04 deja-dup 30.0 duplicity 0.6.23 (haven't got a more recent version yet but David has), as a newly-created user with the default Déjà-Dup settings:
1. Perform the first full backup and check that the backup, the file signatures, and the manifest file have been successfully created:
$ ls -l ~/deja-dup
-rw------- 1 luke luke 171 Jan 16 00:51 duplicity-full.20170115T235149Z.manifest
-rw------- 1 luke luke 48989 Jan 16 00:51 duplicity-full.20170115T235149Z.vol1.difftar.gz
-rw------- 1 luke luke 9965 Jan 16 00:51 duplicity-full-signatures.20170115T235149Z.sigtar.gz
$ ls -l ~/deja-dup
-rw------- 1 luke luke 171 Jan 16 00:51 duplicity-full.20170115T235149Z.manifest
-rw-rw-r-- 1 luke luke 480256 Jan 16 00:57 duplicity-full.20170115T235149Z.vol1.difftar
-rw------- 1 luke luke 48989 Jan 16 00:51 duplicity-full.20170115T235149Z.vol1.difftar.gz
-rw------- 1 luke luke 9965 Jan 16 00:51 duplicity-full-signatures.20170115T235149Z.sigtar.gz
3. Start the first incremental backup and witness the assertion error in duplicity that David reported:
$ deja-dup --backup
Traceback (most recent call last):
File "/usr/bin/duplicity", line 1494, in <module>
with_tempdir(main)
File "/usr/bin/duplicity", line 1488, in with_tempdir
fn()
File "/usr/bin/duplicity", line 1337, in main
do_backup(action)
File "/usr/bin/duplicity", line 1370, in do_backup
globals.archive_dir).set_values()
File "/usr/lib/python2.7/dist-packages/duplicity/collections.py", line 697, in set_values
self.get_backup_chains(partials + backend_filename_list)
File "/usr/lib/python2.7/dist-packages/duplicity/collections.py", line 819, in get_backup_chains
map(add_to_sets, filename_list)
File "/usr/lib/python2.7/dist-packages/duplicity/collections.py", line 809, in add_to_sets
if set.add_filename(filename):
File "/usr/lib/python2.7/dist-packages/duplicity/collections.py", line 100, in add_filename
(self.volume_name_dict, filename)
AssertionError: ({1: 'duplicity-full.20170115T235149Z.vol1.difftar'}, 'duplicity-full.20170115T235149Z.vol1.difftar.gz')
$ DEJA_DUP_DEBUG=1 deja-dup --backup > deja-dup.log1
# see attached file for details
4. Interestingly, duplicity already has checks to avoid considering files whose names don't look like they could be part of a backup set, as proven by the success and log file of the following incremental backup:
$ ls -l ~/deja-dup
-rw-rw-r-- 1 luke luke 0 Jan 16 01:08 assignment.odt
-rw-rw-r-- 1 luke luke 0 Jan 16 01:08 creative-writing-syllabus.pdf
-rw-rw-r-- 1 luke luke 0 Jan 16 01:08 duplicity-commandline-memo.txt
-rw-rw-r-- 1 luke luke 0 Jan 16 01:08 duplicity-full-1995-movie.mkv.vol1.rar
-rw------- 1 luke luke 171 Jan 16 00:51 duplicity-full.20170115T235149Z.manifest
-rw------- 1 luke luke 48989 Jan 16 00:51 duplicity-full.20170115T235149Z.vol1.difftar.gz
-rw------- 1 luke luke 9965 Jan 16 00:51 duplicity-full-signatures.20170115T235149Z.sigtar.gz
$ DEJA_DUP_DEBUG=1 deja-dup --backup > deja-dup.log2
# see attached file for details (truncated to the interesting bits)
So there's no need to come up with a brand-new extensive filename filter, it's already here, only improve it so it doesn't burp so hard when a backup volume is present in both compressed and uncompressed forms.
I have also replicated the bug, on Ubuntu 14.04 deja-dup 30.0 duplicity 0.6.23 (haven't got a more recent version yet but David has), as a newly-created user with the default Déjà-Dup settings:
1. Perform the first full backup and check that the backup, the file signatures, and the manifest file have been successfully created:
$ ls -l ~/deja-dup full.20170115T2 35149Z. manifest full.20170115T2 35149Z. vol1.difftar. gz full-signatures .20170115T23514 9Z.sigtar. gz
-rw------- 1 luke luke 171 Jan 16 00:51 duplicity-
-rw------- 1 luke luke 48989 Jan 16 00:51 duplicity-
-rw------- 1 luke luke 9965 Jan 16 00:51 duplicity-
2. Uncompress the backup volume:
$ gunzip --to-stdout duplicity- full.20170115T2 35149Z. vol1.difftar. gz > duplicity- full.20170115T2 35149Z. vol1.difftar
$ ls -l ~/deja-dup full.20170115T2 35149Z. manifest full.20170115T2 35149Z. vol1.difftar full.20170115T2 35149Z. vol1.difftar. gz full-signatures .20170115T23514 9Z.sigtar. gz
-rw------- 1 luke luke 171 Jan 16 00:51 duplicity-
-rw-rw-r-- 1 luke luke 480256 Jan 16 00:57 duplicity-
-rw------- 1 luke luke 48989 Jan 16 00:51 duplicity-
-rw------- 1 luke luke 9965 Jan 16 00:51 duplicity-
3. Start the first incremental backup and witness the assertion error in duplicity that David reported:
$ deja-dup --backup duplicity" , line 1494, in <module> tempdir( main) duplicity" , line 1488, in with_tempdir duplicity" , line 1337, in main backup( action) duplicity" , line 1370, in do_backup archive_ dir).set_ values( ) python2. 7/dist- packages/ duplicity/ collections. py", line 697, in set_values get_backup_ chains( partials + backend_ filename_ list) python2. 7/dist- packages/ duplicity/ collections. py", line 819, in get_backup_chains add_to_ sets, filename_list) python2. 7/dist- packages/ duplicity/ collections. py", line 809, in add_to_sets filename( filename) : python2. 7/dist- packages/ duplicity/ collections. py", line 100, in add_filename volume_ name_dict, filename) full.20170115T2 35149Z. vol1.difftar' }, 'duplicity- full.20170115T2 35149Z. vol1.difftar. gz')
Traceback (most recent call last):
File "/usr/bin/
with_
File "/usr/bin/
fn()
File "/usr/bin/
do_
File "/usr/bin/
globals.
File "/usr/lib/
self.
File "/usr/lib/
map(
File "/usr/lib/
if set.add_
File "/usr/lib/
(self.
AssertionError: ({1: 'duplicity-
$ DEJA_DUP_DEBUG=1 deja-dup --backup > deja-dup.log1
# see attached file for details
4. Interestingly, duplicity already has checks to avoid considering files whose names don't look like they could be part of a backup set, as proven by the success and log file of the following incremental backup:
$ ls -l ~/deja-dup writing- syllabus. pdf commandline- memo.txt full-1995- movie.mkv. vol1.rar full.20170115T2 35149Z. manifest full.20170115T2 35149Z. vol1.difftar. gz full-signatures .20170115T23514 9Z.sigtar. gz
-rw-rw-r-- 1 luke luke 0 Jan 16 01:08 assignment.odt
-rw-rw-r-- 1 luke luke 0 Jan 16 01:08 creative-
-rw-rw-r-- 1 luke luke 0 Jan 16 01:08 duplicity-
-rw-rw-r-- 1 luke luke 0 Jan 16 01:08 duplicity-
-rw------- 1 luke luke 171 Jan 16 00:51 duplicity-
-rw------- 1 luke luke 48989 Jan 16 00:51 duplicity-
-rw------- 1 luke luke 9965 Jan 16 00:51 duplicity-
$ DEJA_DUP_DEBUG=1 deja-dup --backup > deja-dup.log2
# see attached file for details (truncated to the interesting bits)
So there's no need to come up with a brand-new extensive filename filter, it's already here, only improve it so it doesn't burp so hard when a backup volume is present in both compressed and uncompressed forms.