Server failer & migration

So the DigitalOcean server that hosts my Discourse website had some type of issue and DigitalOcean is trying to migrate my website to another server. I am in contact with them about the issue but I wanted to see if anyone in the Discourse community has been through this issue before.

Does anybody have tips on this situation? Do they normally notify you when this process is complete? They haven’t responded to my e-mails yet. My website has been completely down for a couple of days and this isn’t good for my community. I didn’t make any changes to Discourse, so I know the problem occurred due to the DigitalOcean server issue. Is there anything specific I should do on my side, or should I just wait longer?

I turned the droplet off and on, as well as rebuilt Discourse with ./launcher rebuild app. After rebuilding I get this error:

Error response from daemon: driver failed programming external connectivity on endpoint app (fd1221330787160dee95f94a1256ca0dc8ddb8be2bc3c4d576ab54d3b768613a): Error starting userland proxy: listen tcp 0.0.0.0:80: bind: address already in use.

email from DigitalOcean:

We have identified an issue on the physical machine hosting one or more of your Droplets, which are listed below. In order to minimize disruption, we will be migrating the Droplets to a healthier physical machine. Throughout the migration, Control Panel and API events - including: power offs, resizes, and attempts to destroy the Droplet - will not succeed for the affected Droplet(s).

In order to minimize downtime, we will attempt to perform live migrations in all possible cases. A live migration would result in no downtime, but minor performance decreases in disk I/O and a second or less of packet loss as the network is switched over to the new physical host.

In the event that we are not able to perform a live migration of a Droplet, we will perform an offline migration during which the Droplet will be powered off and migrated offline during the window.

My guess is that the Digital Ocean stuff is unrelated and that you somehow have some other web server that’s installed or running on your server. Is there an apache or nginx installed? Does some web server come up on your site even though discourse isn’t running.?

1 Like

I used the DigitalOcean Discourse auto installer when I originally set everything up, it uses Ubuntu and whatever else its packaged with. I don’t have any other websites on this droplet. It looks like nginx is active and running. Apache status returns an error.

This is what comes up on my down website when visited in FireFox:

Error 521Ray ID: 5c686964ad310d1a • 2020-08-22 00:17:35 UTC
Web server is down

Browser - Cloudflare - Host
Working - Working - Error

I ran the code systemctl status apache2 to see if apache is running and it says:

    ● apache2.service - The Apache HTTP Server
       Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset:
      Drop-In: /lib/systemd/system/apache2.service.d
               └─apache2-systemd.conf
       Active: failed (Result: exit-code) since Fri 2020-08-21 16:16:24 UTC; 7h ago
      Process: 912 ExecStart=/usr/sbin/apachectl start (code=exited, status=1/FAILUR
Aug 21 16:16:24 discourse-beta-ubuntu-s-1vcpu-1gb-nyc1-01 apachectl[912]: AH0055
Aug 21 16:16:24 discourse-beta-ubuntu-s-1vcpu-1gb-nyc1-01 apachectl[912]: (98)Ad
Aug 21 16:16:24 discourse-beta-ubuntu-s-1vcpu-1gb-nyc1-01 apachectl[912]: (98)Ad
Aug 21 16:16:24 discourse-beta-ubuntu-s-1vcpu-1gb-nyc1-01 apachectl[912]: no lis
Aug 21 16:16:24 discourse-beta-ubuntu-s-1vcpu-1gb-nyc1-01 apachectl[912]: AH0001
Aug 21 16:16:24 discourse-beta-ubuntu-s-1vcpu-1gb-nyc1-01 apachectl[912]: Action
Aug 21 16:16:24 discourse-beta-ubuntu-s-1vcpu-1gb-nyc1-01 apachectl[912]: The Ap
Aug 21 16:16:24 discourse-beta-ubuntu-s-1vcpu-1gb-nyc1-01 systemd[1]: apache2.se
Aug 21 16:16:24 discourse-beta-ubuntu-s-1vcpu-1gb-nyc1-01 systemd[1]: apache2.se
Aug 21 16:16:24 discourse-beta-ubuntu-s-1vcpu-1gb-nyc1-01 systemd[1]: Failed to 
lines 1-17/17 (END)

I ran the systemctl status nginx code to check nginx and it says:

● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: en
   Active: active (running) since Fri 2020-08-21 16:16:24 UTC; 8h ago
     Docs: man:nginx(8)
  Process: 972 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=
  Process: 917 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process o
 Main PID: 976 (nginx)
    Tasks: 2 (limit: 1108)
   CGroup: /system.slice/nginx.service
           ├─976 nginx: master process /usr/sbin/nginx -g daemon on; master_proc
           └─977 nginx: worker process

Aug 21 16:16:24 discourse-beta-ubuntu-s-1vcpu-1gb-nyc1-01 systemd[1]: Starting A
Aug 21 16:16:24 discourse-beta-ubuntu-s-1vcpu-1gb-nyc1-01 systemd[1]: nginx.serv
Aug 21 16:16:24 discourse-beta-ubuntu-s-1vcpu-1gb-nyc1-01 systemd[1]: Started A
lines 1-15/15 (END)

Looking at that email it looks like you can just wait it out and see what they do. But I would make sure to have an offsite backup, just in case!

Generally it is much better to use the official install method. Unless you are using that droplet for something else in addition to discourse, my suggestion would be that you take this opportunity to start fresh with a new droplet and install using the official, supported instructions here: https://github.com/discourse/discourse/blob/master/docs/INSTALL-cloud.md

Then you can download a backup from your old instance and upload it to your new instance, and you will be up and running again with an instance that is officially supported and will be easier to keep maintained.

3 Likes