I get the same error and stacktrace with duplicity 0.7.18 and the following command:
| $ duplicity --version
| duplicity 0.7.18
|
| $ duplicity incremental --name "##########" --full-if-older-than 15D --gpg-options="--cipher-algo=AES" --num-retries 10 --backend-retry-delay 10 --verbosity notice "/srv/##########" "par2+sftp://##########/"
| Local and Remote metadata are synchronized, no sync needed.
| Last full backup date: ########################
| Traceback (innermost last):
| File "/usr/bin/duplicity", line 1567, in <module>
| with_tempdir(main)
| File "/usr/bin/duplicity", line 1553, in with_tempdir
| fn()
| File "/usr/bin/duplicity", line 1405, in main
| do_backup(action)
| File "/usr/bin/duplicity", line 1535, in do_backup
| incremental_backup(sig_chain)
| File "/usr/bin/duplicity", line 680, in incremental_backup
| globals.backend)
| File "/usr/bin/duplicity", line 466, in write_multivol
| (tdp, dest_filename, vol_num)))
| File "/usr/lib/python2.7/dist-packages/duplicity/asyncscheduler.py", line 146, in schedule_task
| return self.__run_synchronously(fn, params)
| File "/usr/lib/python2.7/dist-packages/duplicity/asyncscheduler.py", line 172, in __run_synchronously
| ret = fn(*params)
| File "/usr/bin/duplicity", line 465, in <lambda>
| vol_num: put(tdp, dest_filename, vol_num),
| File "/usr/bin/duplicity", line 355, in put
| validate_block(putsize, dest_filename)
| File "/usr/bin/duplicity", line 337, in validate_block
| util.escape(dest_filename), orig_size))
| TypeError: %d format: a number is required, not NoneType
With --asynchronous-upload the stacktrace is different:
| $ duplicity --version
| duplicity 0.7.18
|
| $ duplicity incremental --name "##########" --full-if-older-than 15D --gpg-options="--cipher-algo=AES" --num-retries 10 --backend-retry-delay 10 --verbosity notice "/srv/##########" "par2+sftp://##########/" --asynchronous-upload
| Local and Remote metadata are synchronized, no sync needed.
| Last full backup date: ########################
| Traceback (innermost last):
| File "/usr/bin/duplicity", line 1567, in <module>
| with_tempdir(main)
| File "/usr/bin/duplicity", line 1553, in with_tempdir
| fn()
| File "/usr/bin/duplicity", line 1405, in main
| do_backup(action)
| File "/usr/bin/duplicity", line 1535, in do_backup
| incremental_backup(sig_chain)
| File "/usr/bin/duplicity", line 680, in incremental_backup
| globals.backend)
| File "/usr/bin/duplicity", line 481, in write_multivol
| bytes_written += waiter()
| File "/usr/lib/python2.7/dist-packages/duplicity/dup_threading.py", line 201, in waiter
| raise state['error'].with_traceback(state['trace'])
| AttributeError: 'exceptions.TypeError' object has no attribute 'with_traceback'
The same commands work fine with duplicity 0.7.17.
I get the same error and stacktrace with duplicity 0.7.18 and the following command:
| $ duplicity --version if-older- than 15D --gpg-options= "--cipher- algo=AES" --num-retries 10 --backend- retry-delay 10 --verbosity notice "/srv/##########" "par2+sftp:// ##########/" ####### ####### ### duplicity" , line 1567, in <module> duplicity" , line 1553, in with_tempdir duplicity" , line 1405, in main duplicity" , line 1535, in do_backup backup( sig_chain) duplicity" , line 680, in incremental_backup duplicity" , line 466, in write_multivol python2. 7/dist- packages/ duplicity/ asyncscheduler. py", line 146, in schedule_task run_synchronous ly(fn, params) python2. 7/dist- packages/ duplicity/ asyncscheduler. py", line 172, in __run_synchronously duplicity" , line 465, in <lambda> duplicity" , line 355, in put block(putsize, dest_filename) duplicity" , line 337, in validate_block dest_filename) , orig_size))
| duplicity 0.7.18
|
| $ duplicity incremental --name "##########" --full-
| Local and Remote metadata are synchronized, no sync needed.
| Last full backup date: #######
| Traceback (innermost last):
| File "/usr/bin/
| with_tempdir(main)
| File "/usr/bin/
| fn()
| File "/usr/bin/
| do_backup(action)
| File "/usr/bin/
| incremental_
| File "/usr/bin/
| globals.backend)
| File "/usr/bin/
| (tdp, dest_filename, vol_num)))
| File "/usr/lib/
| return self.__
| File "/usr/lib/
| ret = fn(*params)
| File "/usr/bin/
| vol_num: put(tdp, dest_filename, vol_num),
| File "/usr/bin/
| validate_
| File "/usr/bin/
| util.escape(
| TypeError: %d format: a number is required, not NoneType
With --asynchronous- upload the stacktrace is different:
| $ duplicity --version if-older- than 15D --gpg-options= "--cipher- algo=AES" --num-retries 10 --backend- retry-delay 10 --verbosity notice "/srv/##########" "par2+sftp:// ##########/" --asynchronous- upload ####### ####### ### duplicity" , line 1567, in <module> duplicity" , line 1553, in with_tempdir duplicity" , line 1405, in main duplicity" , line 1535, in do_backup backup( sig_chain) duplicity" , line 680, in incremental_backup duplicity" , line 481, in write_multivol python2. 7/dist- packages/ duplicity/ dup_threading. py", line 201, in waiter error'] .with_traceback (state[ 'trace' ]) TypeError' object has no attribute 'with_traceback'
| duplicity 0.7.18
|
| $ duplicity incremental --name "##########" --full-
| Local and Remote metadata are synchronized, no sync needed.
| Last full backup date: #######
| Traceback (innermost last):
| File "/usr/bin/
| with_tempdir(main)
| File "/usr/bin/
| fn()
| File "/usr/bin/
| do_backup(action)
| File "/usr/bin/
| incremental_
| File "/usr/bin/
| globals.backend)
| File "/usr/bin/
| bytes_written += waiter()
| File "/usr/lib/
| raise state['
| AttributeError: 'exceptions.
The same commands work fine with duplicity 0.7.17.
Tested with a recent Ubuntu 16.04.