Package: duplicity
Version: 0.8.22-1+b3
Severity: normal
X-Debbugs-Cc: [email protected]
Dear Maintainer,
* What led up to the situation?
We create write offsite backups to s3 with duply/duplicity. We run
duplicity with the following params (from duply):
--s3-european-buckets --s3-use-new-style --s3-multipart-chunk-size=25
--s3-use-multiprocessing --s3-use-ia
* What exactly did you do (or not do) that was effective (or
ineffective)?
When we run the duply backup, we get to see the error:
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File
"/usr/lib/python3/dist-packages/duplicity/backends/_boto_multi.py", line 223,
in _upload
mp.upload_part_from_file(fd, offset + 1, cb=_upload_callback,
File "/usr/lib/python3/dist-packages/boto/s3/multipart.py", line 257,
in upload_part_from_file
key.set_contents_from_file(fp, headers=headers, replace=replace,
File "/usr/lib/python3/dist-packages/boto/s3/key.py", line 1307, in
set_contents_from_file
self.send_file(fp, headers=headers, cb=cb, num_cb=num_cb,
File "/usr/lib/python3/dist-packages/boto/s3/key.py", line 760, in
send_file
self._send_file_internal(fp, headers=headers, cb=cb, num_cb=num_cb,
File "/usr/lib/python3/dist-packages/boto/s3/key.py", line 932, in
_send_file_internal
self.content_type = mimetypes.guess_type(self.path)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/mimetypes.py", line 307, in guess_type
return _db.guess_type(url, strict)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/mimetypes.py", line 123, in guess_type
scheme, url = urllib.parse._splittype(url)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/urllib/parse.py", line 1038, in _splittype
match = _typeprog.match(url)
^^^^^^^^^^^^^^^^^^^^
TypeError: cannot use a string pattern on a bytes-like object
Giving up after 5 attempts. BackendException: Multipart upload failed.
Aborted.
* What outcome did you expect instead?
Duplicity to finish the backup and upload to S3, not crash
For your info/convenience, we repackaged bookworm duplicity in our own repo
with this patch applied:
https://gitlab.com/duplicity/duplicity/-/merge_requests/99
Our repackaged duplicity:
https://apt.hypernode.com/pool/hypernode/d/duplicity/duplicity_0.8.22-1%2Bhypernode1_amd64.deb
Upstream issue: https://gitlab.com/duplicity/duplicity/-/issues/126
Ubuntu also has related issue:
https://bugs.launchpad.net/ubuntu/+source/duplicity/+bug/1908971
-- System Information:
Debian Release: 12.5
APT prefers stable-updates
APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 'stable')
Architecture: amd64 (x86_64)
Kernel: Linux 6.1.0-18-amd64 (SMP w/2 CPU threads; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8),
LANGUAGE=en_US:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages duplicity depends on:
ii gnupg 2.2.40-1.1
ii libc6 2.36-9+deb12u4
ii librsync2 2.3.2-1+b1
ii python3 3.11.2-1+b1
ii python3-fasteners 0.17.3-2
ii python3-future 0.18.2-6
ii python3-lockfile 1:0.12.2-2.2
ii python3.11 3.11.2-6
Versions of packages duplicity recommends:
ii python3-oauthlib 3.2.2-1
ii python3-paramiko 2.12.0-2
ii python3-pexpect 4.8.0-4
ii python3-urllib3 1.26.12-1
ii rsync 3.2.7-1
Versions of packages duplicity suggests:
pn lftp <none>
pn ncftp <none>
pn par2 <none>
pn python3-boto <none>
ii python3-pip 23.0.1+dfsg-1
pn python3-swiftclient <none>
pn tahoe-lafs <none>
-- no debconf information