Hi duply team,
after upgrading from Debian 12 to Debian 13 duply fails to correctly use duplicity for some commands with my config (or duplicity handles them differently than before).
Duply version is 2.5.5 and duplicity version is 3.0.4.
The problem combination is the MAX_FULLBKP_AGE or VOLSIZE feature of duply with for example the status command of duplicity. It seems the parameter, which has no meaning for those commands, is no longer ignored but treated as additional and disallowed positional argument:
$ duply rootbkp status
Start duply v2.5.5, time is 2025-08-21 12:05:48.
Using profile '/etc/duply/rootbkp'.
Using installed duplicity version 3.0.4, python 3.13.5 (/usr/bin/python3) 'PYTHONPATH=:/usr/lib/python313.zip:/usr/lib/python3.13:/usr/lib/python3.13/lib-dynload:/usr/local/lib/python3.13/dist-packages:/usr/lib/python3/dist-packages', gpg 2.4.7 (Home: /root/.gnupg), awk 'mawk 1.3.4 20250131', grep 'grep (GNU grep) 3.11', bash '5.2.37(1)-release (x86_64-pc-linux-gnu)'.
Signing disabled. No GPG_KEY entries in config.
Checking TEMP_DIR '/tmp' is a folder and writable (OK)
Test - Encryption with passphrase (OK)
Test - Decryption with passphrase (OK)
Test - Compare (OK)
Cleanup - Delete '/tmp/duply.2137.1755770748_*'(OK)
--- Start running command STATUS at 2025-08-21 12:05:49.927 ---
CommandLineError: Wrong number of positional args for 'collection-status', got 2
Expected 1 positionals from ['1W', 'ftp://user@backup.server/template-debian13-root'].
Enter 'duplicity --help' for help screen.
2025-08-21 12:05:50.064 Task 'STATUS' failed with exit code '23'.
--- Finished state FAILED 'code 23' at 2025-08-21 12:05:50.064 - Runtime 00:00:00.136 ---
Commenting the two maximum full backup age lines makes the command succeed.
I'll let cron decide when to perform full backups as a workaroung, but this used to be a nice feature.
VOLSIZE has a similar parameter scheme and fails the same way.
Thanks for the good work on duply,
David
hey David,
will try to reproduce and fix. just wanted to let you know that i've seen your report and appreciate it.
THANKS! ..ede
Hi ede,
thanks a lot. Just let me know if you need additional information from my side.
Best regards, David
are you sure VOLSIZE raises an issue? afaics it is stripped for all non-backup commands.
My initial config had only MAX_FULLBKP_AGE uncommented and this was what triggered the problem for me. When creating the bug report, because it looked similar, I also tried with VOLSIZE briefly and saw it fail.
I just re-tested and the error message is as follows, with default VOLSIZE of 50:
2025-08-26T22:05:50.147354+02:00 share duply-backup: --- Start running command PURGE at 2025-08-26 22:05:50.140 ---
2025-08-26T22:05:50.246601+02:00 share duply-backup: CommandLineError: Wrong number of positional args for 'remove-older-than', got 3
2025-08-26T22:05:50.246697+02:00 share duply-backup: Expected 2 positionals from ['2M', '50', 'ftp://user@ubackup.com/share-srv_slow'].
2025-08-26T22:05:50.246761+02:00 share duply-backup: Enter 'duplicity --help' for help screen.
2025-08-26T22:05:50.273214+02:00 share duply-backup: 2025-08-26 22:05:50.267 Task 'PURGE' failed with exit code '23'.
2025-08-26T22:05:50.277927+02:00 share duply-backup: --- Finished state FAILED 'code 23' at 2025-08-26 22:05:50.267 - Runtime 00:00:00.126 ---
The 2M is from my MAX_AGE=2M parameter.
So yes, it seems to fail for me. I upgraded from Debian 12 to 13 and the config in etc was unchanged. Maybe the VOLSIZE handling changed and my config should have changed as well. I'll compare to current upstream tomorrow.
i see. thanks! will have a deeper look.
just tested the VOLSIZE issue
with
duply test status(test is a profile) and it works fine. verified it with the duply--previewparameter which does not execute but merely prints the generated cmd lines.NOTE the missing
--volsize 50from thestatuscmd line.1.
can you please provide me with a copy of your
profile/conffile? obfuscate data you deem private in there (e.g. passphrases).2.
please run the preview commands for me to see what is generated and post the full shell output. again obfuscate if needed.
Last edit: ede 2025-08-28
also can't replicate the issue with
with duplicity 3.0.4 . maybe a python 3.13 issue or something else on Debian 13 . will setup a vm and check.
works for me. please send me the outputs requested above https://sourceforge.net/p/ftplicity/bugs/144/#f9d6
Hi ede, thanks for putting in all that effort. While stripping down the config to something minimal that still shows the issue, I found that I can toggle between working and not working by commenting or having active my exclude-other-filesystems line. I also found that only the MAX_FULLBKP_AGE content xor the VOLSIZE content shows up in the commandline. If both are active VOLSIZE does not show up.
2.
ok, that helps. at least i got a hickup now to debug :)
I hope this is a supported use case after all. It seems like the exclude-other-filesytems parameter is not in duply.sh and it must have been added to the config many years ago ...
all good. i think i found it. please try this snapshot
https://duply.net/tmp/duply.sh
Thanks so much! Yes, it works correctly in my setup as well.
released as v2.5.6 . THANKS again David!