AssertionError when Duplicity sees .par2 files in the remote file list
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Duplicity |
Fix Released
|
Medium
|
Unassigned |
Bug Description
The assertion in collections.py add_filename is choking on .par2 files. I believe it is during a process that is looking at the destination file list. This list includes .par2 files, but the filename parser is not aware of them and ends up with the assertion error.
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/
add_to_sets(f)
File "/usr/lib/
if set.add_
File "/usr/lib/
(pr.
AssertionError: (1, {1: 'duplicity-
Duplicity version 0.7.0 (* see below), Python 2.7.3, Ubuntu 12.04.5 LTS
Target filesystem: Linux
* I am running Duplicity version 0.7.0 with a couple of patches applied in order to make par2+rsync work. Both of the patches appear to have already made it into the repository in 0.7.01 (2014/12/??):
1. I added 'rsync' to uses_netlock (see https:/
2. I added strip_prefix() in backend.py and replaced url_string.lstrip with the call to strip_prefix. This was necessary to make the par2+rsync:// schema parse properly. (see http://
My command line:
duplicity --archive-dir '/var/duply-cache' --name 'duply_officetest' --encrypt-key $ENCRYPTKEY --sign-key $SIGNKEY --verbosity 9 --full-
My solution:
I believe the par2 backend should be filtering out .par2 files before returning the list of remote files. The list() method in par2backend.py did this before the backends were reorganized by revision 981 (http://
Changed in duplicity: | |
importance: | Undecided → Medium |
milestone: | none → 0.7.01 |
status: | New → Fix Committed |
Changed in duplicity: | |
status: | Fix Committed → Fix Released |
Looks like you had run with par2+?? before this run, then changed methods.
If that's the case, then you'll need to manually delete the .par2 files
from the remote and run again, or stick with the same method.
On Mon, Jan 12, 2015 at 3:22 PM, John Doe <email address hidden> wrote:
> Still getting this error, only tested when the cache duplicity) doesn't exist. Version 0.7.1:- bin/duplicity" , line 1500, in <module> bin/duplicity" , line 1494, in with_tempdir bin/duplicity" , line 1343, in main bin/duplicity" , line 1376, in do_backup archive_ dir).set_ values( ) lib/python2. 7/dist- packages/ duplicity/ collections. py", backup_ chains( partials + backend_ filename_ list) lib/python2. 7/dist- packages/ duplicity/ collections. py", lib/python2. 7/dist- packages/ duplicity/ collections. py", filename( filename) : lib/python2. 7/dist- packages/ duplicity/ collections. py", manifest( filename) lib/python2. 7/dist- packages/ duplicity/ collections. py", full.20150112T2 02904Z. manifest. gpg', full.20150112T2 02904Z. manifest. gpg.par2' ) /bugs.launchpad .net/bugs/ 1406173 duplicity" , line 1500, in <module> duplicity" , line 1494, in with_tempdir duplicity" , line 1343, in main duplicity" , line 1376, in do_backup archive_ dir).set_ values( ) python2. 7/dist- packages/ duplicity/ collections. py", line backup_ chains( partials + backend_ filename_ list) python2. 7/dist- packages/ duplicity/ collections. py", line python2. 7/dist- packages/ duplicity/ collections. py", line filename( filename) : python2. 7/dist- packages/ duplicity/ collections. py", line
> (~/.cache/
>
> Local and Remote metadata are synchronized, no sync needed.
> Traceback (most recent call last):
> File "/usr/local/
> with_tempdir(main)
> File "/usr/local/
> fn()
> File "/usr/local/
> do_backup(action)
> File "/usr/local/
> globals.
> File "/usr/local/
> line 698, in set_values
> self.get_
> File "/usr/local/
> line 821, in get_backup_chains
> add_to_sets(f)
> File "/usr/local/
> line 810, in add_to_sets
> if set.add_
> File "/usr/local/
> line 98, in add_filename
> self.set_
> File "/usr/local/
> line 129, in set_manifest
> remote_filename)
> AssertionError: ('duplicity-
> 'duplicity-
>
> --
> You received this bug notification because you are subscribed to
> Duplicity.
> https:/
>
> Title:
> AssertionError when Duplicity sees .par2 files in the remote file list
>
> Status in Duplicity - Bandwidth Efficient Encrypted Backup:
> Fix Released
>
> Bug description:
> The assertion in collections.py add_filename is choking on .par2
> files. I believe it is during a process that is looking at the
> destination file list. This list includes .par2 files, but the
> filename parser is not aware of them and ends up with the assertion
> error.
>
> Traceback (most recent call last):
> File "/usr/bin/
> with_tempdir(main)
> File "/usr/bin/
> fn()
> File "/usr/bin/
> do_backup(action)
> File "/usr/bin/
> globals.
> File "/usr/lib/
> 698, in set_values
> self.get_
> File "/usr/lib/
> 821, in get_backup_chains
> add_to_sets(f)
> File "/usr/lib/
> 810, in add_to_sets
> if set.add_
> File "/usr/lib/
> 102, in add_filename
> (pr.volume_number, self.vol...