#778628 duplicity: Crashes when --progress and --exclude-filelist given

Package:
duplicity
Source:
duplicity
Description:
encrypted bandwidth-efficient backup
Submitter:
Dariusz Dwornikowski
Date:
2015-02-21 08:39:09 UTC
Severity:
normal
#778628#5
Date:
2015-02-17 16:44:11 UTC
From:
To:
Dear Maintainer,

   * What led up to the situation?

    I wanted to use duplicity and see the progress, i.e. --progress

   * What exactly did you do (or not do) that was effective (or
     ineffective)?

     duplicity --progress --exclude-filelist FILE /home/myhome rsync://HOST/backup

   * What was the outcome of this action?

     A crash:

... files
M .some_file
M .some_file2
M foobar8
Reading filelist FILE
Traceback (most recent call last):
  File "/usr/bin/duplicity", line 1507, in <module>
    with_tempdir(main)
  File "/usr/bin/duplicity", line 1501, in with_tempdir
    fn()
  File "/usr/bin/duplicity", line 1350, in main
    do_backup(action)
  File "/usr/bin/duplicity", line 1483, in do_backup
    incremental_backup(sig_chain)
  File "/usr/bin/duplicity", line 623, in incremental_backup
    commandline.set_selection()
  File "/usr/lib/python2.7/dist-packages/duplicity/commandline.py", line 911, in set_selection
    sel.ParseArgs(select_opts, select_files)
  File "/usr/lib/python2.7/dist-packages/duplicity/selection.py", line 238, in ParseArgs
    filelists[filelists_index], 0, arg))
  File "/usr/lib/python2.7/dist-packages/duplicity/selection.py", line 316, in filelist_get_sf
    self.filelist_read(filelist_fp, inc_default, filelist_name)
  File "/usr/lib/python2.7/dist-packages/duplicity/selection.py", line 352, in filelist_read
    for line in filelist_fp.read().split(separator):
ValueError: I/O operation on closed file

   * What outcome did you expect instead?

   I expected to make a backup and see progress.


The problem is that when --progress is given, duplicity first does a
dry-run. It opens FILE to see the list, after the dry-run, it tries to
access this FILE again but it is already closed. Hence the exception.