# Backup on S3 "something went wrong"

**URL:** <https://discourse.mailinabox.email/t/backup-on-s3-something-went-wrong/11842>\
**Category:** Maintenance\
**Created:** [May 1, 2024, 5:50pm UTC](https://discourse.mailinabox.email/t/backup-on-s3-something-went-wrong/11842 "2024-05-01T17:50:37Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![gorglife](https://discourse.mailinabox.email/letter_avatar_proxy/v4/letter/g/3be4f8/32.png) [@gorglife](https://discourse.mailinabox.email/u/gorglife)\
**Post date:** [May 1, 2024, 5:50pm UTC](https://discourse.mailinabox.email/t/backup-on-s3-something-went-wrong/11842/1 "2024-05-01T17:50:38Z")

</div>

I am trying to setup a backup on S3, have used following settings, with positive response at first:

 ![image](https://discourse.mailinabox.email/uploads/default/original/2X/8/81aed782c910d2a51a46c7b9d955f154b1e044e4.png)

Right after it shows a greyed screen with “Loading” and after a while it comes back with an error message and “Something went wrong. Sorry.”

I have run sudo /root/mailinabox/management/backup.py \> ~/logfile.log 2\>&1 on a terminal and got following log:  
Traceback (innermost last):  
File “/usr/bin/duplicity”, line 92, in   
with\_tempdir(main)  
File “/usr/bin/duplicity”, line 75, in with\_tempdir  
fn()  
File “/usr/lib/python3/dist-packages/duplicity/dup\_main.py”, line 1555, in main  
action = commandline.ProcessCommandLine(sys.argv[1:])  
File “/usr/lib/python3/dist-packages/duplicity/commandline.py”, line 1223, in ProcessCommandLine  
config.backend = backend.get\_backend(args[0])  
File “/usr/lib/python3/dist-packages/duplicity/backend.py”, line 223, in get\_backend  
obj = get\_backend\_object(url\_string)  
File “/usr/lib/python3/dist-packages/duplicity/backend.py”, line 209, in get\_backend\_object  
return factory(pu)  
File “/usr/lib/python3/dist-packages/duplicity/backends/\_boto\_single.py”, line 174, in **init**  
self.resetConnection()  
File “/usr/lib/python3/dist-packages/duplicity/backends/\_boto\_single.py”, line 199, in resetConnection  
self.bucket = self.conn.create\_bucket(self.bucket\_name,  
File “/usr/local/lib/python3.10/dist-packages/boto/s3/connection.py”, line 618, in create\_bucket  
response = self.make\_request(‘PUT’, bucket\_name, headers=headers,  
File “/usr/local/lib/python3.10/dist-packages/boto/s3/connection.py”, line 667, in make\_request  
return super(S3Connection, self).make\_request(  
File “/usr/local/lib/python3.10/dist-packages/boto/connection.py”, line 1070, in make\_request  
return self.\_mexe(http\_request, sender, override\_num\_retries,  
File “/usr/local/lib/python3.10/dist-packages/boto/connection.py”, line 1030, in \_mexe  
raise ex  
File “/usr/local/lib/python3.10/dist-packages/boto/connection.py”, line 942, in \_mexe  
connection.request(request.method, request.path,  
File “/usr/lib/python3.10/http/client.py”, line 1283, in request  
self.\_send\_request(method, url, body, headers, encode\_chunked)  
File “/usr/lib/python3.10/http/client.py”, line 1329, in \_send\_request  
self.endheaders(body, encode\_chunked=encode\_chunked)  
File “/usr/lib/python3.10/http/client.py”, line 1278, in endheaders  
self.\_send\_output(message\_body, encode\_chunked=encode\_chunked)  
File “/usr/lib/python3.10/http/client.py”, line 1038, in \_send\_output  
self.send(msg)  
File “/usr/lib/python3.10/http/client.py”, line 976, in send  
self.connect()  
File “/usr/lib/python3.10/http/client.py”, line 1448, in connect  
super().connect()  
File “/usr/lib/python3.10/http/client.py”, line 942, in connect  
self.sock = self.\_create\_connection(  
File “/usr/lib/python3.10/socket.py”, line 824, in create\_connection  
for res in getaddrinfo(host, port, 0, SOCK\_STREAM):  
File “/usr/lib/python3.10/socket.py”, line 955, in getaddrinfo  
for res in \_socket.getaddrinfo(host, port, family, type, proto, flags):  
socket.gaierror: [Errno -2] Name or service not known

Something is wrong with the backup: ERROR 30 gaierror  
. Traceback (innermost last):  
. File “/usr/bin/duplicity”, line 92, in   
. with\_tempdir(main)  
. File “/usr/bin/duplicity”, line 75, in with\_tempdir  
. fn()  
. File “/usr/lib/python3/dist-packages/duplicity/dup\_main.py”, line 1555, in main  
. action = commandline.ProcessCommandLine(sys.argv[1:])  
. File “/usr/lib/python3/dist-packages/duplicity/commandline.py”, line 1223, in ProcessCommandLine  
. config.backend = backend.get\_backend(args[0])  
. File “/usr/lib/python3/dist-packages/duplicity/backend.py”, line 223, in get\_backend  
. obj = get\_backend\_object(url\_string)  
. File “/usr/lib/python3/dist-packages/duplicity/backend.py”, line 209, in get\_backend\_object  
. return factory(pu)  
. File “/usr/lib/python3/dist-packages/duplicity/backends/\_boto\_single.py”, line 174, in **init**  
. self.resetConnection()  
. File “/usr/lib/python3/dist-packages/duplicity/backends/\_boto\_single.py”, line 199, in resetConnection  
. self.bucket = self.conn.create\_bucket(self.bucket\_name,  
. File “/usr/local/lib/python3.10/dist-packages/boto/s3/connection.py”, line 618, in create\_bucket  
. response = self.make\_request(‘PUT’, bucket\_name, headers=headers,  
. File “/usr/local/lib/python3.10/dist-packages/boto/s3/connection.py”, line 667, in make\_request  
. return super(S3Connection, self).make\_request(  
. File “/usr/local/lib/python3.10/dist-packages/boto/connection.py”, line 1070, in make\_request  
. return self.\_mexe(http\_request, sender, override\_num\_retries,  
. File “/usr/local/lib/python3.10/dist-packages/boto/connection.py”, line 1030, in \_mexe  
. raise ex  
. File “/usr/local/lib/python3.10/dist-packages/boto/connection.py”, line 942, in \_mexe  
. connection.request(request.method, request.path,  
. File “/usr/lib/python3.10/http/client.py”, line 1283, in request  
. self.\_send\_request(method, url, body, headers, encode\_chunked)  
. File “/usr/lib/python3.10/http/client.py”, line 1329, in \_send\_request  
. self.endheaders(body, encode\_chunked=encode\_chunked)  
. File “/usr/lib/python3.10/http/client.py”, line 1278, in endheaders  
. self.\_send\_output(message\_body, encode\_chunked=encode\_chunked)  
. File “/usr/lib/python3.10/http/client.py”, line 1038, in \_send\_output  
. self.send(msg)  
. File “/usr/lib/python3.10/http/client.py”, line 976, in send  
. self.connect()  
. File “/usr/lib/python3.10/http/client.py”, line 1448, in connect  
. super().connect()  
. File “/usr/lib/python3.10/http/client.py”, line 942, in connect  
. self.sock = self.\_create\_connection(  
. File “/usr/lib/python3.10/socket.py”, line 824, in create\_connection  
. for res in getaddrinfo(host, port, 0, SOCK\_STREAM):  
. File “/usr/lib/python3.10/socket.py”, line 955, in getaddrinfo  
. for res in \_socket.getaddrinfo(host, port, family, type, proto, flags):  
. socket.gaierror: [Errno -2] Name or service not known  
.

I can’t find any easy reason why the socket.gaierror.  
Any ideas what can be wrong? I am using MIAB v68 and have not modified anything.

---

<div class="post-metadata">

**Author:** ![BangsKeyboards](https://discourse.mailinabox.email/letter_avatar_proxy/v4/letter/b/848f3c/32.png) [@BangsKeyboards](https://discourse.mailinabox.email/u/BangsKeyboards)\
**Post date:** [May 2, 2024, 4:32am UTC](https://discourse.mailinabox.email/t/backup-on-s3-something-went-wrong/11842/2 "2024-05-02T04:32:19Z")

</div>

I don’t know if it was the same issue, but I couldn’t get the direct backup to work either with an S3 compatible storage target. I instead setup rcopy sync to copy to my object store after the backup takes place locally on the server with a cron job. Just an option in case you want to cover your back while you debug the direct method.

---

<div class="post-metadata">

**Author:** ![gorglife](https://discourse.mailinabox.email/letter_avatar_proxy/v4/letter/g/3be4f8/32.png) [@gorglife](https://discourse.mailinabox.email/u/gorglife)\
**Post date:** [May 2, 2024, 6:50am UTC](https://discourse.mailinabox.email/t/backup-on-s3-something-went-wrong/11842/3 "2024-05-02T06:50:45Z")

</div>

Hi @BangsKeyboards,

thanks for the suggestion and indeed I have already setup an automatic (crontab) backup with duplicity using:  
sudo -E duplicity --encrypt-key $GPG\_KEY /home/user-data/mail/mailboxes s3://s3.eu-central-1.amazonaws.com/xxxxxxxx/mail/

what I am not sure about is, how I would recover if all goes wrong, but at least I am backing up directly at this moment.

Thanks.

---

<div class="post-metadata">

**Author:** ![gorglife](https://discourse.mailinabox.email/letter_avatar_proxy/v4/letter/g/3be4f8/32.png) [@gorglife](https://discourse.mailinabox.email/u/gorglife)\
**Post date:** [May 2, 2024, 9:21pm UTC](https://discourse.mailinabox.email/t/backup-on-s3-something-went-wrong/11842/4 "2024-05-02T21:21:36Z")

</div>

Update: I have tried to rebuild the shell command generated by the backup.py script, exported the environment variables as needed and run the corresponding command as follows from terminal:  
/usr/bin/duplicity full --verbosity warning --no-print-statistics --archive-dir /home/user-data/backup/cache --exclude /home/user-data/backup --volsize 250 --gpg-options ‘–cipher-algo=AES256’ --allow-source-mismatch --s3-endpoint-url [https://s3.eu-central-1.amazonaws.com](https://s3.eu-central-1.amazonaws.com) /home/user-data s3://miabxxxxxbackup/mail

still getting the same error socket.gaierror: [Errno -2] Name or service not known as follows:  
Traceback (innermost last):  
File “/usr/bin/duplicity”, line 92, in   
with\_tempdir(main)  
File “/usr/bin/duplicity”, line 75, in with\_tempdir  
fn()  
File “/usr/lib/python3/dist-packages/duplicity/dup\_main.py”, line 1555, in main  
action = commandline.ProcessCommandLine(sys.argv[1:])  
File “/usr/lib/python3/dist-packages/duplicity/commandline.py”, line 1236, in ProcessCommandLine  
backup, local\_pathname = set\_backend(args[0], args[1])  
File “/usr/lib/python3/dist-packages/duplicity/commandline.py”, line 1107, in set\_backend  
config.backend = backend.get\_backend(bend)  
File “/usr/lib/python3/dist-packages/duplicity/backend.py”, line 223, in get\_backend  
obj = get\_backend\_object(url\_string)  
File “/usr/lib/python3/dist-packages/duplicity/backend.py”, line 209, in get\_backend\_object  
return factory(pu)  
File “/usr/lib/python3/dist-packages/duplicity/backends/\_boto\_single.py”, line 174, in **init**  
self.resetConnection()  
File “/usr/lib/python3/dist-packages/duplicity/backends/\_boto\_single.py”, line 199, in resetConnection  
self.bucket = self.conn.create\_bucket(self.bucket\_name,  
File “/usr/local/lib/python3.10/dist-packages/boto/s3/connection.py”, line 618, in create\_bucket  
response = self.make\_request(‘PUT’, bucket\_name, headers=headers,  
File “/usr/local/lib/python3.10/dist-packages/boto/s3/connection.py”, line 667, in make\_request  
return super(S3Connection, self).make\_request(  
File “/usr/local/lib/python3.10/dist-packages/boto/connection.py”, line 1070, in make\_request  
return self.\_mexe(http\_request, sender, override\_num\_retries,  
File “/usr/local/lib/python3.10/dist-packages/boto/connection.py”, line 1030, in \_mexe  
raise ex  
File “/usr/local/lib/python3.10/dist-packages/boto/connection.py”, line 942, in \_mexe  
connection.request(request.method, request.path,  
File “/usr/lib/python3.10/http/client.py”, line 1283, in request  
self.\_send\_request(method, url, body, headers, encode\_chunked)  
File “/usr/lib/python3.10/http/client.py”, line 1329, in \_send\_request  
self.endheaders(body, encode\_chunked=encode\_chunked)  
File “/usr/lib/python3.10/http/client.py”, line 1278, in endheaders  
self.\_send\_output(message\_body, encode\_chunked=encode\_chunked)  
File “/usr/lib/python3.10/http/client.py”, line 1038, in \_send\_output  
self.send(msg)  
File “/usr/lib/python3.10/http/client.py”, line 976, in send  
self.connect()  
File “/usr/lib/python3.10/http/client.py”, line 1448, in connect  
super().connect()  
File “/usr/lib/python3.10/http/client.py”, line 942, in connect  
self.sock = self.\_create\_connection(  
File “/usr/lib/python3.10/socket.py”, line 824, in create\_connection  
for res in getaddrinfo(host, port, 0, SOCK\_STREAM):  
File “/usr/lib/python3.10/socket.py”, line 955, in getaddrinfo  
for res in \_socket.getaddrinfo(host, port, family, type, proto, flags):  
socket.gaierror: [Errno -2] Name or service not known

the issue seems to be in the way duplicity is setup. Still investigating. Any help is welcome.

---

<div class="post-metadata">

**Author:** ![gorglife](https://discourse.mailinabox.email/letter_avatar_proxy/v4/letter/g/3be4f8/32.png) [@gorglife](https://discourse.mailinabox.email/u/gorglife)\
**Post date:** [May 3, 2024, 1:27pm UTC](https://discourse.mailinabox.email/t/backup-on-s3-something-went-wrong/11842/5 "2024-05-03T13:27:23Z")

</div>

Update: kind of solved!  
I have removed duplicity (had version duplicity 0.8.21) and installed version duplicity 2.2.2 February 03, 2024.  
This version does not need S3 Host / Endpoint so I have modified the backup.py commenting every \*get\_duplicity\_additional\_args(env) out.

Now it is running.

---

<div class="post-metadata">

**Author:** ![KiekerJan](https://discourse.mailinabox.email/user_avatar/discourse.mailinabox.email/kiekerjan/32/2339_2.png) [@KiekerJan](https://discourse.mailinabox.email/u/KiekerJan)\
**Post date:** [May 3, 2024, 5:48pm UTC](https://discourse.mailinabox.email/t/backup-on-s3-something-went-wrong/11842/6 "2024-05-03T17:48:14Z")

</div>

> [@gorglife](#):
>
> I have removed duplicity (had version duplicity 0.8.21) and installed version duplicity 2.2.2 February 03, 2024.

This should already be the case by default. What version of MiaB are you on?

---

<div class="post-metadata">

**Author:** ![gorglife](https://discourse.mailinabox.email/letter_avatar_proxy/v4/letter/g/3be4f8/32.png) [@gorglife](https://discourse.mailinabox.email/u/gorglife)\
**Post date:** [May 4, 2024, 6:32am UTC](https://discourse.mailinabox.email/t/backup-on-s3-something-went-wrong/11842/7 "2024-05-04T06:32:22Z")

</div>

I had upgraded MiaB from v67 to v68 on Apr 14. Should I upgrade also other modules (e.g. Duplicity) manually or is it not upgraded with the new version? Just to know how to behave in future.

Thanks.

---

<div class="post-metadata">

**Author:** ![KiekerJan](https://discourse.mailinabox.email/user_avatar/discourse.mailinabox.email/kiekerjan/32/2339_2.png) [@KiekerJan](https://discourse.mailinabox.email/u/KiekerJan)\
**Post date:** [May 4, 2024, 7:23am UTC](https://discourse.mailinabox.email/t/backup-on-s3-something-went-wrong/11842/8 "2024-05-04T07:23:55Z")

</div>

Version 0.8.21 is from the default Ubuntu repositories. Part of the MiaB installation is to add a duplicity ppa from which a newer version is installed. I’m just surprised this didn’t happen for yours. Or are you using ARM instead of x64?

---

<div class="post-metadata">

**Author:** ![vele](https://discourse.mailinabox.email/letter_avatar_proxy/v4/letter/v/e5b9ba/32.png) [@vele](https://discourse.mailinabox.email/u/vele)\
**Post date:** [May 4, 2024, 8:45am UTC](https://discourse.mailinabox.email/t/backup-on-s3-something-went-wrong/11842/9 "2024-05-04T08:45:03Z")

</div>

If you are using arm see the workaround here: [Using MIAB On ARM](https://discourse.mailinabox.email/t/using-miab-on-arm/11229)  
You have to manually create the link after each update.

---

<div class="post-metadata">

**Author:** ![gorglife](https://discourse.mailinabox.email/letter_avatar_proxy/v4/letter/g/3be4f8/32.png) [@gorglife](https://discourse.mailinabox.email/u/gorglife)\
**Post date:** [May 4, 2024, 1:27pm UTC](https://discourse.mailinabox.email/t/backup-on-s3-something-went-wrong/11842/10 "2024-05-04T13:27:32Z")

</div>

OK then that’s the issue: I am running on an Ubuntu t4g.medium EC2 instance on AWS baed on ARM…got the point!  
Thanks @KiekerJan and @vele

---

<div class="post-metadata">

**Author:** ![system](https://discourse.mailinabox.email/uploads/default/original/2X/4/4d0933d13c456b7e57f296aa6cc344525b6f0c70.png) [@system](https://discourse.mailinabox.email/u/system)\
**Post date:** [June 13, 2024, 1:28pm UTC](https://discourse.mailinabox.email/t/backup-on-s3-something-went-wrong/11842/11 "2024-06-13T13:28:14Z")

</div>

This topic was automatically closed 40 days after the last reply. New replies are no longer allowed.
