Restore hangs "forever" after cryptic stack trace
I have:
- ([x] when completed)
-
searched https://gitlab.com/duplicity/duplicity/-/issues for similar issues. If you find a similar issue and the issue is still open, add a comment to the existing issue instead of opening a new one. If you find a Closed issue that seems like it is the same thing that you're experiencing, open a new issue and include a link to the original issue in the body of your new one. -
searched https://bugs.launchpad.net/duplicity for similar issues. If you find a similar issue, open a new issue on here and include a link to the original issue in the body of your new one. -
tested that this issue still occurs on the latest stable snap (install instructions: https://snapcraft.io/duplicity), please include the snap version ( snap info duplicity | grep installed
) output:installed: x.xx.xx (xx)
-
ideally, tested that this issue still occurs on the latest edge snap, if you can test without risking your data. Please include the snap version output: installed: x.xx.xx (xx)
Note: Already tried Ubuntu 20.04 distribution package, PyPy and manual install. Trying snap installations now, but testing takes a good while since it only fails after 3381 volumes. Update: Same behaviour on latest stable snap.
installed: 0.8.14 (104) 94MB classic
Summary
Restore hangs "forever" after cryptic stack trace
Steps to reproduce
sudo duplicity -v9 --log-file restore.log --ignore-errors --force file:///b01/duplicity/duplicity_willow_raid01 /b01/restore/raid01
What is the current bug behaviour?
Restore does not proceed beyond stack trace.
What is the expected correct behaviour?
Successful restore
Relevant logs and/or screenshots
Deleting /tmp/duplicity-6v0vy0up-tempdir/mktemp-aksvzmzo-3385
Forgetting temporary file /tmp/duplicity-6v0vy0up-tempdir/mktemp-aksvzmzo-3385
Processed volume 3381 of 7026
Releasing lockfile b'/root/.cache/duplicity/c324eedb3e0801b4df25ef3091ecca95/lockfile'
Removing still remembered temporary file /tmp/duplicity-6v0vy0up-tempdir/mkstemp-1xkq83xp-1
Removing still remembered temporary file /tmp/duplicity-6v0vy0up-tempdir/mktemp-f23yida6-4
Removing still remembered temporary file /tmp/duplicity-6v0vy0up-tempdir/mktemp-75c2aqks-5
Removing still remembered temporary file /tmp/duplicity-6v0vy0up-tempdir/mktemp-vphr3f6v-6
Releasing lockfile b'/root/.cache/duplicity/c324eedb3e0801b4df25ef3091ecca95/lockfile'
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/duplicity/patchdir.py", line 359, in __next__
return next(self.tar_iter)
StopIteration
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/bin/duplicity", line 106, in <module>
with_tempdir(main)
File "/usr/bin/duplicity", line 92, in with_tempdir
fn()
File "/usr/lib/python3/dist-packages/duplicity/dup_main.py", line 1538, in main
do_backup(action)
File "/usr/lib/python3/dist-packages/duplicity/dup_main.py", line 1618, in do_backup
restore(col_stats)
File "/usr/lib/python3/dist-packages/duplicity/dup_main.py", line 723, in restore
if not patchdir.Write_ROPaths(globals.local_path,
File "/usr/lib/python3/dist-packages/duplicity/patchdir.py", line 580, in Write_ROPaths
ITR(ropath.index, ropath)
File "/usr/lib/python3/dist-packages/duplicity/lazy.py", line 361, in __call__
robust.check_common_error(last_branch.on_error,
File "/usr/lib/python3/dist-packages/duplicity/robust.py", line 41, in check_common_error
return function(*args)
File "/usr/lib/python3/dist-packages/duplicity/patchdir.py", line 634, in fast_process
ropath.copy(self.base_path.new_index(index))
File "/usr/lib/python3/dist-packages/duplicity/path.py", line 455, in copy
other.writefileobj(self.open(u"rb"))
File "/usr/lib/python3/dist-packages/duplicity/path.py", line 651, in writefileobj
buf = fin.read(_copy_blocksize)
File "/usr/lib/python3/dist-packages/duplicity/patchdir.py", line 227, in read
if not self.addtobuffer():
File "/usr/lib/python3/dist-packages/duplicity/patchdir.py", line 252, in addtobuffer
self.tarinfo_list[0] = next(self.tar_iter)
File "/usr/lib/python3/dist-packages/duplicity/patchdir.py", line 362, in __next__
self.set_tarfile()
File "/usr/lib/python3/dist-packages/duplicity/patchdir.py", line 348, in set_tarfile
self.current_fp = next(self.fileobj_iter)
File "/usr/lib/python3/dist-packages/duplicity/dup_main.py", line 760, in get_fileobj_iter
backup_set.volume_name_dict[vol_num],
KeyError: 3380
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/bin/duplicity", line 162, in <module>
if u"Forced assertion for testing" in util.uexc(e):
TypeError: argument of type 'NoneType' is not iterable
Possible fixes
None known