Duplicity hangs after errors

Bug #1405502 reported by E.B.
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Duplicity
New
Undecided
Unassigned

Bug Description

Duplicity has started hanging after errors on two separate machines. Both machines are:

Hand-compiled duplicity 0.6.25 on Ubuntu 12.04

I don't know enough if the errors themselves are related to duplicity hanging or not, so I am including brief -v9 output from both machines. Note the 2nd machine might be choking on an old duplicity manifest file that was saved off while recovering from a hard disk corruption, but I'm not certain if that matters or if it is accurate. 1st machine didn't have any disk corruption problems.

End of both outputs includes the bit generated when I pressed control-C

#########
Machine 1
#########
Selecting /home/johnm/Maildir/dovecot.index.log.2
Releasing lockfile <lockfile.LinkFileLock instance at 0x3057d88>
Removing still remembered temporary file /tmp/duplicity-c8o1G4-tempdir/mktemp-KV1uB3-47
Removing still remembered temporary file /tmp/duplicity-c8o1G4-tempdir/mkstemp-uPMJ5D-1
Traceback (most recent call last):
  File "/usr/local/bin/duplicity", line 1509, in <module>
    with_tempdir(main)
  File "/usr/local/bin/duplicity", line 1503, in with_tempdir
    fn()
  File "/usr/local/bin/duplicity", line 1352, in main
    do_backup(action)
  File "/usr/local/bin/duplicity", line 1485, in do_backup
    incremental_backup(sig_chain)
  File "/usr/local/bin/duplicity", line 633, in incremental_backup
    globals.backend)
  File "/usr/local/bin/duplicity", line 399, in write_multivol
    globals.gpg_profile, globals.volsize)
  File "/usr/local/lib/python2.7/dist-packages/duplicity/gpg.py", line 331, in GPGWriteFile
    data = block_iter.next().data
  File "/usr/local/lib/python2.7/dist-packages/duplicity/diffdir.py", line 518, in next
    result = self.process(self.input_iter.next())
  File "/usr/local/lib/python2.7/dist-packages/duplicity/diffdir.py", line 190, in get_delta_iter
    for new_path, sig_path in collated:
  File "/usr/local/lib/python2.7/dist-packages/duplicity/diffdir.py", line 281, in collate2iters
    relem2 = riter2.next()
  File "/usr/local/lib/python2.7/dist-packages/duplicity/diffdir.py", line 350, in combine_path_iters
    refresh_triple_list(triple_list)
  File "/usr/local/lib/python2.7/dist-packages/duplicity/diffdir.py", line 336, in refresh_triple_list
    new_triple = get_triple(old_triple[1])
  File "/usr/local/lib/python2.7/dist-packages/duplicity/diffdir.py", line 322, in get_triple
    path = path_iter_list[iter_index].next()
  File "/usr/local/lib/python2.7/dist-packages/duplicity/diffdir.py", line 234, in sigtar2path_iter
    for tarinfo in tf:
  File "/usr/local/lib/python2.7/dist-packages/duplicity/tarfile.py", line 2470, in next
    tarinfo = self.tarfile.next()
  File "/usr/local/lib/python2.7/dist-packages/duplicity/tarfile.py", line 2319, in next
    self.fileobj.seek(self.offset)
  File "/usr/lib/python2.7/gzip.py", line 429, in seek
    self.read(1024)
  File "/usr/lib/python2.7/gzip.py", line 256, in read
    self._read(readsize)
  File "/usr/lib/python2.7/gzip.py", line 320, in _read
    self._read_eof()
  File "/usr/lib/python2.7/gzip.py", line 342, in _read_eof
    hex(self.crc)))
IOError: CRC check failed 0x43872847 != 0x7d505e15L

^C

close failed in file object destructor:
IOError: [Errno 32] Broken pipe
Exception KeyboardInterrupt in <module 'threading' from '/usr/lib/python2.7/threading.pyc'> ignored

#########
Machine 2
#########
note the error seems to happen on an old duplicity file
that I moved away for safe keeping while restoring from
a corrupted disk. maybe this is the cause of the problem?

Selecting /var/old-corrupted/root/.cache/duplicity/a5af988f0861715f4b14466a0c03b4ed/duplicity-full.20141112T033613Z.manifest
Releasing lockfile <lockfile.LinkFileLock instance at 0x1fdcbd8>
Removing still remembered temporary file /tmp/duplicity-6G4eQj-tempdir/mkstemp-IaPa4Q-1
Removing still remembered temporary file /tmp/duplicity-6G4eQj-tempdir/mktemp-JzVNTP-3
Traceback (most recent call last):
  File "/usr/local/bin/duplicity", line 1509, in <module>
    with_tempdir(main)
  File "/usr/local/bin/duplicity", line 1503, in with_tempdir
    fn()
  File "/usr/local/bin/duplicity", line 1352, in main
    do_backup(action)
  File "/usr/local/bin/duplicity", line 1485, in do_backup
    incremental_backup(sig_chain)
  File "/usr/local/bin/duplicity", line 633, in incremental_backup
    globals.backend)
  File "/usr/local/bin/duplicity", line 399, in write_multivol
    globals.gpg_profile, globals.volsize)
  File "/usr/local/lib/python2.7/dist-packages/duplicity/gpg.py", line 331, in GPGWriteFile
    data = block_iter.next().data
  File "/usr/local/lib/python2.7/dist-packages/duplicity/diffdir.py", line 518, in next
    result = self.process(self.input_iter.next())
  File "/usr/local/lib/python2.7/dist-packages/duplicity/diffdir.py", line 190, in get_delta_iter
    for new_path, sig_path in collated:
  File "/usr/local/lib/python2.7/dist-packages/duplicity/diffdir.py", line 281, in collate2iters
    relem2 = riter2.next()
  File "/usr/local/lib/python2.7/dist-packages/duplicity/diffdir.py", line 350, in combine_path_iters
    refresh_triple_list(triple_list)
  File "/usr/local/lib/python2.7/dist-packages/duplicity/diffdir.py", line 336, in refresh_triple_list
    new_triple = get_triple(old_triple[1])
  File "/usr/local/lib/python2.7/dist-packages/duplicity/diffdir.py", line 322, in get_triple
    path = path_iter_list[iter_index].next()
  File "/usr/local/lib/python2.7/dist-packages/duplicity/diffdir.py", line 234, in sigtar2path_iter
    for tarinfo in tf:
  File "/usr/local/lib/python2.7/dist-packages/duplicity/tarfile.py", line 2470, in next
    tarinfo = self.tarfile.next()
  File "/usr/local/lib/python2.7/dist-packages/duplicity/tarfile.py", line 2319, in next
    self.fileobj.seek(self.offset)
  File "/usr/lib/python2.7/gzip.py", line 429, in seek
    self.read(1024)
  File "/usr/lib/python2.7/gzip.py", line 256, in read
    self._read(readsize)
  File "/usr/lib/python2.7/gzip.py", line 307, in _read
    uncompress = self.decompress.decompress(buf)
error: Error -3 while decompressing: invalid stored block lengths

Removing still remembered temporary file /root/.cache/duplicity/a5af988f0861715f4b14466a0c03b4ed/duplicity-N8H4EE-tempdir/mktemp-rDiL3N-1
Removing still remembered temporary file /root/.cache/duplicity/a5af988f0861715f4b14466a0c03b4ed/duplicity-nA91wx-tempdir/mktemp-S2Tpqn-1

^C

close failed in file object destructor:
IOError: [Errno 32] Broken pipe
Exception KeyboardInterrupt in <module 'threading' from '/usr/lib/python2.7/threading.pyc'> ignored

Revision history for this message
E.B. (emailbuilder88) wrote :

Also, full verbose logs are available, but I can't hold them for much more than a week, due to space limitations. File sizes are 200MB and 20MB and contain too much private information for me to clean.

Mailing list thread about this issue is here:
http://thread.gmane.org/gmane.comp.sysutils.backup.duplicity.general/6784

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.