Verification Email will not send due to errors caused by Docker filesystem

Ok, in that case my docker configuration must be messing up the install.
Only thing I can think of is that with my root file system being ext3 and my /var/lib/docker filesystem is formatted as ext4 there is a problem somehow.
I only created a separate file system for /var/lib/docker because overlayfs didn’t seem to work with the root file system that is ext3.
I could just upgrade the root file system to ext4 and have /var/lib/docker on the root file system, I’m just not sure if it would help or not.
It seems to be hard to find a list of overlayfs requirements.

I have the latest Linode Kernel “4.1.5-x86_64-linode61”.
I could compile my own kernel but it seems like 4.1.5 should be new enough.

I just decided to try my idea so I created a new ext4 disk image on linode, rebooted into rescue mode (Finnix LiveCD), copied everything from the ext3 disk image to the ext4 disk image, changed my linode to boot from the ext4 disk image and started my linode.
I then deleted /var/discourse and with my docker image gone my /var/lib/docker was empty again too.
I restarted my discourse install from step 1.
I did the same as before though I did change a couple of things in app.yml that were recommended for 1GB.

When I ran ./launcher bootstrap app, I thought I saw the error with the tables again but like before discourse seemed to work.
Also this time when signing up for an admin account, I got an email from MailJet saying I needed to approve a need sender address.
I didn’t have an MX record for forum.mydomain.tld, just mydomain.tld so I added one, told discourse to resend the email and now I got the message.

I just checked /log and saw this again:

PG::UndefinedTable: ERROR:  relation "users" does not exist
LINE 5:                WHERE a.attrelid = '"users"'::regclass
                                          ^
:               SELECT a.attname, format_type(a.atttypid, a.atttypmod),
                     pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod
                FROM pg_attribute a LEFT JOIN pg_attrdef d
                  ON a.attrelid = d.adrelid AND a.attnum = d.adnum
               WHERE a.attrelid = '"users"'::regclass
                 AND a.attnum > 0 AND NOT a.attisdropped
               ORDER BY a.attnum

Though unlike before I no problems with email.

So in short: It appears when you using overlayfs with docker your root filesystem needs to be ext4 not ext3 or you will not be able to send email (also using the vfs storage driver for docker with ext3 root file system seems to fail though that maybe because the vfs driver quickly uses all disk space).
Unless it was just a coincidence and it was setting these settings in app.yml which made the email work:
db_shared_buffers: "256MB"
UNICORN_WORKERS: 2
Before the settings were commented out as they were set to whatever the defaults are.

1 Like

If email is working now on a default install, and it sounds like it is, you’re good. So this was a filesystem problem with Docker as suspected.

1 Like

I believe those settings tell Discourse to take less resources than the default. If the forums are slow, you can bump those up. db_shared_buffers should be 1/4 of your RAM.

1 Like