cleanup broken
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Duplicity |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
The cleanup action no longer works correctly with duplicity 0.6.19 and an scp:// target. It has worked fine with some earlier 0.6.1? version, so this seems to be a regression.
Duplicity correctly detects the files to be deleted, but actually only deletes the first of them - even though no error is reported.
Please note that this type of backend behaviour could also explain Bug #1031269.
=======
duplicity 0.6.19 ($reldate)
Args: /usr/bin/duplicity cleanup --verbosity 9 --ssh-askpass --force scp://xxx@
Linux xxx 3.0.0-23-
/usr/bin/python2.7 2.7.2+ (default, Oct 4 2011, 20:03:08)
[GCC 4.6.1]
=======
Local and Remote metadata are synchronized, no sync needed.
9998 files exist on backend
4 files exist in cache
Extracting backup chains from list of files: ['duplicity-
...
File duplicity-
File duplicity-
Found backup chain [Mon Jul 30 21:29:08 2012]-[Mon Jul 30 21:29:08 2012]
Warning, found incomplete backup sets, probably left from aborted session
Last full backup date: Mon Jul 30 21:29:08 2012
Collection Status
-----------------
Connecting with backend: SSHParamikoBackend
Archive dir: /home/xxx/
Found 0 secondary backup chains.
Found primary backup chain with matching signature chain:
-------
Chain start time: Mon Jul 30 21:29:08 2012
Chain end time: Mon Jul 30 21:29:08 2012
Number of contained backup sets: 1
Total number of contained volumes: 4964
Type of backup set: Time: Num volumes:
-------
Also found 0 backup sets not part of any chain,
and 2 incomplete backup sets.
These may be deleted by running duplicity with the "cleanup" command.
Deleting these files from backend:
duplicity-
duplicity-
duplicity-
...
Related branches
- duplicity-team: Pending requested
-
Diff: 24 lines (+4/-4)1 file modifiedduplicity/backends/_ssh_paramiko.py (+4/-4)
Changed in duplicity: | |
status: | New → Fix Released |
I think the issue is in _ssh_paramiko.py, into delete function.
the backend deletes the first file of the list passed to delete() but then a return is called after the real delete... this skips all the remaining files in list.
I think that removing the return statements in delete fn (should be line 363 and 367) will fix that.