Discourse + DigitalOcean + Mailjet setup

Before flaming me, please note I’ve read through nearly every post on these forums about Discourse + Mailjet, but nothing has answered my specific question.

During the setup process, Discourse wants the following information:

  • DISCOURSE_DEVELOPER_EMAILS — can be anything
  • DISCOURSE_SMTP_ADDRESS — I’m using in-v3.mailjet.com, but this is just a guess!
  • DISCOURSE_SMTP_PORT — 587
  • DISCOURSE_SMTP_USER_NAME — My Mailjet login name?
  • DISCOURSE_SMTP_PASSWORD — My Mailjet login password?

The three I am completely unsure about are:

  • DISCOURSE_SMTP_ADDRESS
  • DISCOURSE_SMTP_USER_NAME
  • DISCOURSE_SMTP_PASSWORD

Mailjet doesn’t include all these items in their UI in one place, and it’s really unclear what is supposed to go where.

I have reached out to their support staff, but they replied with “After reviewing the information in the ticket, it has been determined that we will need to engage another group of colleagues.”

… and then they disappeared for 48 hours.

I’ve already set up the SPF and DKIM records for Mailjet, so all that stuff is in place, but I think the username and password are incorrect because /discourse-doctor suggests that’s the point of failure.

If you can provide me with some clear insight here, I would be very grateful! Thank you.

I should probably also mention: This Discourse installation is running on a subdomain.

I’ve installed Discourse (with Mailgun) on subdomains many other times, and in each of those cases, I did not need to make any special provisions for the subdomain in the DNS records (specifically, the SPF and DKIM records from Mailgun).

However, some of the posts in these forums suggest I will need to modify the DNS records for the subdomain.

But I’m using Mailjet for transactional email on the basic domain (a WordPress site) and also on the subdomain. It seems to me that if I were to modify the records to indicate the subdomain, then the transactional email would no longer work on the WordPress site.

Either that, or else I need 2 sets of records to get them to work on both.

But based on the way the Mailgun sites have gone, I don’t think I need to make any special provisions for the subdomain in the DNS (beyond the A record that creates the subdomain).

Clearly, I am at least somewhat confused here, so I’ll appreciate any guidance you can provide.

You can find them on this Mailjet page, or set them up if needed.

DISCOURSE_SMTP_USER_NAME = API Key from MailJet
DISCOURSE_SMTP_PASSWORD = API Key Secret from MailJet
DISCOURSE_SMTP_ADDRESS is correct in your example though is also found in the same screen.

MailJet will need you to setup the subdomain, I believe, It’s been a while.

2 Likes

Whoa, so username is API key? I never would have figured that out. I’ll give this a shot and see if it works.

By the way—any idea how to change the sender from one email address to another? The default WordPress sender is currently a different domain than the actual site, and I’d like to change this. (I don’t know how I managed to change this in the first place or where it might be pulling the current value from, as it does not match the WordPress admin email address.)

That’s DISCOURSE_NOTIFICATION_EMAIL and discourse-setup asks you for “notification email address?” so you can easily change it that way.

2 Likes

Thank you!

1 Like

So far, this is NOT working for me. Discourse will not send a test email from the console successfully, and the Discourse installation process is not completing (for reasons I don’t understand).

Gonna wipe everything out and try again.

Ok, here’s the message I get during the failed install:

Any ideas how I can fix this? It’s not clear what’s wrong, since this error is coming from within the installation files (and not from anything I’ve input).

Could you share the full log? There should be at least a few errors before that line.

1 Like

Running discourse doctor now but will provide logs when it’s complete. Two questions:

  1. Discourse doctor appears to have hung up on the following lines:
Node.js heap_size_limit (488.25) is less than 1024MB. Setting --max-old-space-size=1024.
Node.js heap_size_limit (488.25) is less than 2048MB. Disabling Webpack parallelization with JOBS=0 to conserve memory.
110:M 06 Dec 2023 20:31:39.033 * 100 changes in 300 seconds. Saving...
110:M 06 Dec 2023 20:31:39.037 * Background saving started by pid 3264
3264:C 06 Dec 2023 20:31:39.055 * DB saved on disk
3264:C 06 Dec 2023 20:31:39.056 * Fork CoW for RDB: current 0 MB, peak 0 MB, average 0 MB
110:M 06 Dec 2023 20:31:39.138 * Background saving terminated with success
  1. What command do I need to enter to get the log file? And how can I download it as a file I can provide to you? (I am not an avid console user, as is probably clear.)

Discourse doctor completed on its own, but still with errors.

Here are the results from the MAIL TEST, which curiously suggests the following:

Error response from daemon: No such container: app

Also, I am currently looking at the less readout of the discourse doctor process, but I do not see any commands on how to share this information with you (outside of a gigantic copy/paste).

Makes sense, considering the forum failed to build.

Copy-pasting would be what I would suggest.

1 Like
Found containers/app.yml

==================== YML SETTINGS ====================
DISCOURSE_HOSTNAME=forum.jimclair.com
SMTP_ADDRESS=in-v3.mailjet.com
DEVELOPER_EMAILS=REDACTED 
SMTP_PASSWORD=REDACTED 
SMTP_PORT=587
SMTP_USER_NAME=495e2921d498a8d1d5ebb0afaccd7b1e
LETSENCRYPT_ACCOUNT_EMAIL=REDACTED 

==================== DOCKER INFO ====================
DOCKER VERSION: Docker version 24.0.7, build afdd53b

DOCKER PROCESSES (docker ps -a)

CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

==================== SERIOUS PROBLEM!!!! ====================
app not running!
Attempting to rebuild
==================== REBUILD LOG ====================
x86_64 arch detected.
Ensuring launcher is up to date
Launcher is up-to-date
2.0.20231023-1945: Pulling from discourse/base
Digest: sha256:2b0eb484d20888cc2daadb690dcfa73522105650c1420212e99345a36a424d77
Status: Image is up to date for discourse/base:2.0.20231023-1945
docker.io/discourse/base:2.0.20231023-1945
/usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2023-12-06T20:26:30.044059 #1]  INFO -- : Reading from stdin
I, [2023-12-06T20:26:30.054996 #1]  INFO -- : > locale-gen $LANG && update-locale
I, [2023-12-06T20:26:30.127937 #1]  INFO -- : Generating locales (this might take a while)...
Generation complete.

I, [2023-12-06T20:26:30.129014 #1]  INFO -- : > mkdir -p /shared/postgres_run
I, [2023-12-06T20:26:30.136308 #1]  INFO -- : 
I, [2023-12-06T20:26:30.137496 #1]  INFO -- : > chown postgres:postgres /shared/postgres_run
I, [2023-12-06T20:26:30.146483 #1]  INFO -- : 
I, [2023-12-06T20:26:30.147545 #1]  INFO -- : > chmod 775 /shared/postgres_run
I, [2023-12-06T20:26:30.151785 #1]  INFO -- : 
I, [2023-12-06T20:26:30.152774 #1]  INFO -- : > rm -fr /var/run/postgresql
I, [2023-12-06T20:26:30.156678 #1]  INFO -- : 
I, [2023-12-06T20:26:30.157561 #1]  INFO -- : > ln -s /shared/postgres_run /var/run/postgresql
I, [2023-12-06T20:26:30.161932 #1]  INFO -- : 
I, [2023-12-06T20:26:30.162762 #1]  INFO -- : > socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres already running stop container ; exit 1
2023/12/06 20:26:30 socat[18] E connect(6, AF=1 "/shared/postgres_run/.s.PGSQL.5432", 36): No such file or directory
I, [2023-12-06T20:26:30.178043 #1]  INFO -- : 
I, [2023-12-06T20:26:30.178987 #1]  INFO -- : > rm -fr /shared/postgres_run/.s*
I, [2023-12-06T20:26:30.185013 #1]  INFO -- : 
I, [2023-12-06T20:26:30.186426 #1]  INFO -- : > rm -fr /shared/postgres_run/*.pid
I, [2023-12-06T20:26:30.192271 #1]  INFO -- : 
I, [2023-12-06T20:26:30.193332 #1]  INFO -- : > mkdir -p /shared/postgres_run/13-main.pg_stat_tmp
I, [2023-12-06T20:26:30.198906 #1]  INFO -- : 
I, [2023-12-06T20:26:30.200224 #1]  INFO -- : > chown postgres:postgres /shared/postgres_run/13-main.pg_stat_tmp
I, [2023-12-06T20:26:30.205350 #1]  INFO -- : 
I, [2023-12-06T20:26:30.216408 #1]  INFO -- : File > /etc/service/postgres/run  chmod: +x  chown: 
I, [2023-12-06T20:26:30.226083 #1]  INFO -- : File > /etc/service/postgres/log/run  chmod: +x  chown: 
I, [2023-12-06T20:26:30.235233 #1]  INFO -- : File > /etc/runit/3.d/99-postgres  chmod: +x  chown: 
I, [2023-12-06T20:26:30.244692 #1]  INFO -- : File > /root/upgrade_postgres  chmod: +x  chown: 
I, [2023-12-06T20:26:30.246204 #1]  INFO -- : > chown -R root /var/lib/postgresql/13/main
I, [2023-12-06T20:26:32.183094 #1]  INFO -- : 
I, [2023-12-06T20:26:32.184301 #1]  INFO -- : > [ ! -e /shared/postgres_data ] && install -d -m 0755 -o postgres -g postgres /shared/postgres_data && sudo -E -u postgres /usr/lib/postgresql/13/bin/initdb -D /shared/postgres_data || exit 0
I, [2023-12-06T20:26:32.188149 #1]  INFO -- : 
I, [2023-12-06T20:26:32.188988 #1]  INFO -- : > chown -R postgres:postgres /shared/postgres_data
I, [2023-12-06T20:26:32.234190 #1]  INFO -- : 
I, [2023-12-06T20:26:32.235330 #1]  INFO -- : > chown -R postgres:postgres /var/run/postgresql
I, [2023-12-06T20:26:32.239962 #1]  INFO -- : 
I, [2023-12-06T20:26:32.241087 #1]  INFO -- : > /root/upgrade_postgres
I, [2023-12-06T20:26:32.250757 #1]  INFO -- : 
I, [2023-12-06T20:26:32.251706 #1]  INFO -- : > rm /root/upgrade_postgres
I, [2023-12-06T20:26:32.255928 #1]  INFO -- : 
I, [2023-12-06T20:26:32.258122 #1]  INFO -- : Replacing data_directory = '/var/lib/postgresql/13/main' with data_directory = '/shared/postgres_data' in /etc/postgresql/13/main/postgresql.conf
I, [2023-12-06T20:26:32.259713 #1]  INFO -- : Replacing (?-mix:#?listen_addresses *=.*) with listen_addresses = '*' in /etc/postgresql/13/main/postgresql.conf
I, [2023-12-06T20:26:32.260811 #1]  INFO -- : Replacing (?-mix:#?synchronous_commit *=.*) with synchronous_commit = $db_synchronous_commit in /etc/postgresql/13/main/postgresql.conf
I, [2023-12-06T20:26:32.262442 #1]  INFO -- : Replacing (?-mix:#?shared_buffers *=.*) with shared_buffers = $db_shared_buffers in /etc/postgresql/13/main/postgresql.conf
I, [2023-12-06T20:26:32.263355 #1]  INFO -- : Replacing (?-mix:#?work_mem *=.*) with work_mem = $db_work_mem in /etc/postgresql/13/main/postgresql.conf
I, [2023-12-06T20:26:32.264184 #1]  INFO -- : Replacing (?-mix:#?default_text_search_config *=.*) with default_text_search_config = '$db_default_text_search_config' in /etc/postgresql/13/main/postgresql.conf
I, [2023-12-06T20:26:32.264947 #1]  INFO -- : > install -d -m 0755 -o postgres -g postgres /shared/postgres_backup
I, [2023-12-06T20:26:32.272176 #1]  INFO -- : 
I, [2023-12-06T20:26:32.273754 #1]  INFO -- : Replacing (?-mix:#?checkpoint_segments *=.*) with checkpoint_segments = $db_checkpoint_segments in /etc/postgresql/13/main/postgresql.conf
I, [2023-12-06T20:26:32.274919 #1]  INFO -- : Replacing (?-mix:#?logging_collector *=.*) with logging_collector = $db_logging_collector in /etc/postgresql/13/main/postgresql.conf
I, [2023-12-06T20:26:32.275763 #1]  INFO -- : Replacing (?-mix:#?log_min_duration_statement *=.*) with log_min_duration_statement = $db_log_min_duration_statement in /etc/postgresql/13/main/postgresql.conf
I, [2023-12-06T20:26:32.276744 #1]  INFO -- : Replacing (?-mix:^#local +replication +postgres +peer$) with local replication postgres  peer in /etc/postgresql/13/main/pg_hba.conf
I, [2023-12-06T20:26:32.277507 #1]  INFO -- : Replacing (?-mix:^host.*all.*all.*127.*$) with host all all 0.0.0.0/0 md5 in /etc/postgresql/13/main/pg_hba.conf
I, [2023-12-06T20:26:32.278326 #1]  INFO -- : Replacing (?-mix:^host.*all.*all.*::1\/128.*$) with host all all ::/0 md5 in /etc/postgresql/13/main/pg_hba.conf
I, [2023-12-06T20:26:32.279092 #1]  INFO -- : > HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main
I, [2023-12-06T20:26:32.282210 #1]  INFO -- : > sleep 5
2023-12-06 20:26:32.359 UTC [41] LOG:  starting PostgreSQL 13.12 (Debian 13.12-1.pgdg110+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-bit
2023-12-06 20:26:32.361 UTC [41] LOG:  listening on IPv4 address "0.0.0.0", port 5432
2023-12-06 20:26:32.362 UTC [41] LOG:  listening on IPv6 address "::", port 5432
2023-12-06 20:26:32.365 UTC [41] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2023-12-06 20:26:32.373 UTC [44] LOG:  database system was shut down at 2023-12-06 20:24:03 UTC
2023-12-06 20:26:32.383 UTC [41] LOG:  database system is ready to accept connections
I, [2023-12-06T20:26:37.289395 #1]  INFO -- : 
I, [2023-12-06T20:26:37.289669 #1]  INFO -- : > su postgres -c 'createdb discourse' || true
2023-12-06 20:26:37.379 UTC [54] postgres@postgres ERROR:  database "discourse" already exists
2023-12-06 20:26:37.379 UTC [54] postgres@postgres STATEMENT:  CREATE DATABASE discourse;
createdb: error: database creation failed: ERROR:  database "discourse" already exists
I, [2023-12-06T20:26:37.385520 #1]  INFO -- : 
I, [2023-12-06T20:26:37.386567 #1]  INFO -- : > su postgres -c 'psql discourse -c "create user discourse;"' || true
2023-12-06 20:26:37.489 UTC [58] postgres@discourse ERROR:  role "discourse" already exists
2023-12-06 20:26:37.489 UTC [58] postgres@discourse STATEMENT:  create user discourse;
ERROR:  role "discourse" already exists
I, [2023-12-06T20:26:37.493228 #1]  INFO -- : 
I, [2023-12-06T20:26:37.494395 #1]  INFO -- : > su postgres -c 'psql discourse -c "grant all privileges on database discourse to discourse;"' || true
I, [2023-12-06T20:26:37.580872 #1]  INFO -- : GRANT

I, [2023-12-06T20:26:37.582256 #1]  INFO -- : > su postgres -c 'psql discourse -c "alter schema public owner to discourse;"'
I, [2023-12-06T20:26:37.675825 #1]  INFO -- : ALTER SCHEMA

I, [2023-12-06T20:26:37.676981 #1]  INFO -- : > su postgres -c 'psql template1 -c "create extension if not exists hstore;"'
NOTICE:  extension "hstore" already exists, skipping
I, [2023-12-06T20:26:37.768934 #1]  INFO -- : CREATE EXTENSION
I, [2023-12-06T20:26:37.770031 #1]  INFO -- : > su postgres -c 'psql template1 -c "create extension if not exists pg_trgm;"'
NOTICE:  extension "pg_trgm" already exists, skipping
I, [2023-12-06T20:26:37.859735 #1]  INFO -- : CREATE EXTENSION

I, [2023-12-06T20:26:37.860890 #1]  INFO -- : > su postgres -c 'psql template1 -c "create extension if not exists vector;"'
NOTICE:  extension "vector" already exists, skipping
I, [2023-12-06T20:26:37.935265 #1]  INFO -- : CREATE EXTENSION

I, [2023-12-06T20:26:37.936060 #1]  INFO -- : > su postgres -c 'psql discourse -c "create extension if not exists hstore;"'
NOTICE:  extension "hstore" already exists, skipping
I, [2023-12-06T20:26:37.997652 #1]  INFO -- : CREATE EXTENSION

I, [2023-12-06T20:26:37.998539 #1]  INFO -- : > su postgres -c 'psql discourse -c "create extension if not exists pg_trgm;"'
NOTICE:  extension "pg_trgm" already exists, skipping
I, [2023-12-06T20:26:38.064153 #1]  INFO -- : CREATE EXTENSION

I, [2023-12-06T20:26:38.065166 #1]  INFO -- : > su postgres -c 'psql discourse -c "create extension if not exists vector;"'
NOTICE:  extension "vector" already exists, skipping
I, [2023-12-06T20:26:38.129276 #1]  INFO -- : CREATE EXTENSION

I, [2023-12-06T20:26:38.130194 #1]  INFO -- : > sudo -u postgres psql discourse
I, [2023-12-06T20:26:38.135353 #1]  INFO -- : update pg_database set encoding = pg_char_to_encoding('UTF8') where datname = 'discourse' AND encoding = pg_char_to_encoding('SQL_ASCII');

I, [2023-12-06T20:26:38.239022 #1]  INFO -- : File > /var/lib/postgresql/take-database-backup  chmod: +x  chown: postgres:postgres
I, [2023-12-06T20:26:38.244519 #1]  INFO -- : File > /var/spool/cron/crontabs/postgres  chmod:   chown: 
I, [2023-12-06T20:26:38.245255 #1]  INFO -- : > echo postgres installed!
I, [2023-12-06T20:26:38.248470 #1]  INFO -- : postgres installed!

I, [2023-12-06T20:26:38.255515 #1]  INFO -- : File > /etc/service/redis/run  chmod: +x  chown: 
I, [2023-12-06T20:26:38.261932 #1]  INFO -- : File > /etc/service/redis/log/run  chmod: +x  chown: 
I, [2023-12-06T20:26:38.268388 #1]  INFO -- : File > /etc/runit/3.d/10-redis  chmod: +x  chown: 
I, [2023-12-06T20:26:38.270088 #1]  INFO -- : Replacing daemonize yes with  in /etc/redis/redis.conf
I, [2023-12-06T20:26:38.271335 #1]  INFO -- : Replacing (?-mix:^pidfile.*$) with  in /etc/redis/redis.conf
I, [2023-12-06T20:26:38.272324 #1]  INFO -- : > install -d -m 0755 -o redis -g redis /shared/redis_data
I, [2023-12-06T20:26:38.276442 #1]  INFO -- : 
I, [2023-12-06T20:26:38.277583 #1]  INFO -- : Replacing (?-mix:^logfile.*$) with logfile "" in /etc/redis/redis.conf
I, [2023-12-06T20:26:38.278657 #1]  INFO -- : Replacing (?-mix:^bind .*$) with  in /etc/redis/redis.conf
I, [2023-12-06T20:26:38.281449 #1]  INFO -- : Replacing (?-mix:^dir .*$) with dir /shared/redis_data in /etc/redis/redis.conf
I, [2023-12-06T20:26:38.283018 #1]  INFO -- : Replacing (?-mix:^protected-mode yes) with protected-mode no in /etc/redis/redis.conf
I, [2023-12-06T20:26:38.284259 #1]  INFO -- : Replacing # io-threads 4 with io-threads $redis_io_threads in /etc/redis/redis.conf
I, [2023-12-06T20:26:38.286500 #1]  INFO -- : > echo redis installed
I, [2023-12-06T20:26:38.289930 #1]  INFO -- : redis installed

I, [2023-12-06T20:26:38.290767 #1]  INFO -- : > cat /etc/redis/redis.conf | grep logfile
I, [2023-12-06T20:26:38.300057 #1]  INFO -- : logfile ""

I, [2023-12-06T20:26:38.300939 #1]  INFO -- : > exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf
I, [2023-12-06T20:26:38.303702 #1]  INFO -- : > sleep 10
110:C 06 Dec 2023 20:26:38.320 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
110:C 06 Dec 2023 20:26:38.321 # Redis version=7.0.7, bits=64, commit=00000000, modified=0, pid=110, just started
110:C 06 Dec 2023 20:26:38.322 # Configuration loaded
110:M 06 Dec 2023 20:26:38.323 * monotonic clock: POSIX clock_gettime
110:M 06 Dec 2023 20:26:38.325 * Running mode=standalone, port=6379.
110:M 06 Dec 2023 20:26:38.325 # Server initialized
110:M 06 Dec 2023 20:26:38.326 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
110:M 06 Dec 2023 20:26:38.327 * Loading RDB produced by version 7.0.7
110:M 06 Dec 2023 20:26:38.328 * RDB age 155 seconds
110:M 06 Dec 2023 20:26:38.328 * RDB memory usage when created 1.44 Mb
110:M 06 Dec 2023 20:26:38.329 * Done loading RDB, keys loaded: 34, keys expired: 0.
110:M 06 Dec 2023 20:26:38.330 * DB loaded from disk: 0.003 seconds
110:M 06 Dec 2023 20:26:38.330 * Ready to accept connections
I, [2023-12-06T20:26:48.309711 #1]  INFO -- : 
I, [2023-12-06T20:26:48.310733 #1]  INFO -- : > thpoff echo "thpoff is installed!"
I, [2023-12-06T20:26:48.315835 #1]  INFO -- : thpoff is installed!

I, [2023-12-06T20:26:48.316614 #1]  INFO -- : > /usr/local/bin/ruby -e 'if ENV["DISCOURSE_SMTP_ADDRESS"] == "smtp.example.com"; puts "Aborting! Mail is not configured!"; exit 1; end'
I, [2023-12-06T20:26:48.421314 #1]  INFO -- : 
I, [2023-12-06T20:26:48.422469 #1]  INFO -- : > /usr/local/bin/ruby -e 'if ENV["DISCOURSE_HOSTNAME"] == "discourse.example.com"; puts "Aborting! Domain is not configured!"; exit 1; end'
I, [2023-12-06T20:26:48.505162 #1]  INFO -- : 
I, [2023-12-06T20:26:48.506193 #1]  INFO -- : > /usr/local/bin/ruby -e 'if (ENV["DISCOURSE_CDN_URL"] || "")[0..1] == "//"; puts "Aborting! CDN must have a protocol specified. Once fixed you should rebake your posts now to correct all posts."; exit 1; end'
I, [2023-12-06T20:26:48.592535 #1]  INFO -- : 
I, [2023-12-06T20:26:48.593337 #1]  INFO -- : > rm -f /etc/cron.d/anacron
I, [2023-12-06T20:26:48.597070 #1]  INFO -- : 
I, [2023-12-06T20:26:48.601327 #1]  INFO -- : File > /etc/cron.d/anacron  chmod:   chown: 
I, [2023-12-06T20:26:48.608402 #1]  INFO -- : File > /etc/runit/1.d/copy-env  chmod: +x  chown: 
I, [2023-12-06T20:26:48.614544 #1]  INFO -- : File > /etc/service/unicorn/run  chmod: +x  chown: 
I, [2023-12-06T20:26:48.620938 #1]  INFO -- : File > /etc/service/nginx/run  chmod: +x  chown: 
I, [2023-12-06T20:26:48.627641 #1]  INFO -- : File > /etc/runit/3.d/01-nginx  chmod: +x  chown: 
I, [2023-12-06T20:26:48.634446 #1]  INFO -- : File > /etc/runit/3.d/02-unicorn  chmod: +x  chown: 
I, [2023-12-06T20:26:48.635292 #1]  INFO -- : Replacing # postgres with sv start postgres || exit 1 in /etc/service/unicorn/run
I, [2023-12-06T20:26:48.636055 #1]  INFO -- : > exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf
I, [2023-12-06T20:26:48.639453 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git reset --hard
137:C 06 Dec 2023 20:26:48.649 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
137:C 06 Dec 2023 20:26:48.650 # Redis version=7.0.7, bits=64, commit=00000000, modified=0, pid=137, just started
137:C 06 Dec 2023 20:26:48.650 # Configuration loaded
137:M 06 Dec 2023 20:26:48.651 * monotonic clock: POSIX clock_gettime
137:M 06 Dec 2023 20:26:48.654 # Warning: Could not create server TCP listening socket *:6379: bind: Address already in use
137:M 06 Dec 2023 20:26:48.654 # Failed listening on port 6379 (TCP), aborting.
Updating files:  14% (4924/33858)^MUpdating files:  15% (5079/33858)^MUpdating files:  16% (5418/33858)^MUpdating files:  17% (5756/33858)^MUpdating files:  18% (6095/33858)^MUpdating files:  19% (6434/33858)^MUpdating files:  20% (6772/33858)^MUpdating files:  21% (7111/33858)^MUpdating files:  22% (7449/33858)^MUpdating files:  23% (7788/33858)^MUpdating files:  24% (8126/33858)^MUpdating files:  25% (8465/33858)^MUpdating files:  26% (8804/33858)^MUpdating files:  27% (9142/33858)^MUpdating files:  28% (9481/33858)^MUpdating files:  28% (9556/33858)^MUpdating files:  29% (9819/33858)^MUpdating files:  30% (10158/33858)^MUpdating files:  31% (10496/33858)^MUpdating files:  32% (10835/33858)^MUpdating files:  33% (11174/33858)^MUpdating files:  34% (11512/33858)^MUpdating files:  35% (11851/33858)^MUpdating files:  36% (12189/33858)^MUpdating files:  37% (12528/33858)^MUpdating files:  38% (12867/33858)^MUpdating files:  39% (13205/33858)^MUpdating files:  40% (13544/33858)^MUpdating files:  41% (13882/33858)^MUpdating files:  42% (14221/33858)^MUpdating files:  43% (14559/33858)^MUpdating files:  44% (14898/33858)^MUpdating files:  45% (15237/33858)^MUpdating files:  45% (15499/33858)^MUpdating files:  46% (15575/33858)^M^MUpdating files:  47% (15914/33858)^MUpdating files:  48% (16252/33858)^MUpdating files:  49% (16591/33858)^MUpdating files:  50% (16929/33858)^MUpdating files:  51% (17268/33858)^MUpdating files:  52% (17607/33858)^MUpdating files:  53% (17945/33858)^MUpdating files:  54% (18284/33858)^MUpdating files:  55% (18622/33858)^MUpdating files:  56% (18961/33858)^MUpdating files:  57% (19300/33858)^MUpdating files:  58% (19638/33858)^MUpdating files:  59% (19977/33858)^MUpdating files:  60% (20315/33858)^MUpdating files:  61% (20654/33858)^MUpdating files:  62% (20992/33858)^MUpdating files:  63% (21331/33858)^MUpdating files:  64% (21670/33858)^MUpdating files:  64% (21754/33858)^MUpdating files:  65% (22008/33858)^MUpdating files:  66% (22347/33858)^MUpdating files:  67% (22685/33858)^MUpdating files:  68% (23024/33858)^MUpdating files:  69% (23363/33858)^MUpdating files:  70% (23701/33858)^MUpdating files:  71% (24040/33858)^MUpdating files:  72% (24378/33858)^MUpdating files:  73% (24717/33858)^MUpdating files:  74% (25055/33858)^MUpdating files:  75% (25394/33858)^MUpdating files:  76% (25733/33858)^MUpdating files:  77% (26071/33858)^MUpdating files:  78% (26410/33858)^MUpdating files:  79% (26748/33858)^MUpdating files:  80% (27087/33858)^MUpdating files:  80% (27336/33858)^MUpdating files:  81% (27425/33858)^MUpdating files:  82% (27764/33858)^MUpdating files:  83% (28103/33858)^MUpdating files:  84% (28441/33858)^MUpdating files:  85% (28780/33858)^MUpdating files:  86% (29118/33858)^MUpdating files:  87% (29457/33858)^MUpdating files:  88% (29796/33858)^MUpdating files:  89% (30134/33858)^MUpdating files:  90% (30473/33858)^MUpdating files:  91% (30811/33858)^MUpdating files:  92% (31150/33858)^MUpdating files:  93% (31488/33858)^MUpdating files:  94% (31827/33858)^MUpdating files:  94% (32069/33858)^MUpdating files:  95% (32166/33858)^MUpdating files:  96% (32504/33858)^MUpdating files:  97% (32843/33858)^MUpdating files:  98% (33181/33858)^MUpdating files:  99% (33520/33858)^MUpdating files: 100% (33858/33858)^MUpdating files: 100% (33858/33858), done.
I, [2023-12-06T20:26:56.173644 #1]  INFO -- : HEAD is now at 043b4a418 FIX: replaces data-tooltip usage by <DTooltip /> (#24062)

I, [2023-12-06T20:26:56.177410 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git clean -f
I, [2023-12-06T20:26:56.982967 #1]  INFO -- : 
I, [2023-12-06T20:26:56.983710 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse bash -c '
  set -o errexit
  if [ $(git rev-parse --is-shallow-repository) == "true" ]; then
      git remote set-branches --add origin main
      git remote set-branches origin tests-passed
      git fetch --depth 1 origin tests-passed
  else
      git fetch --tags --prune-tags --prune --force origin
  fi
'
From https://github.com/discourse/discourse
 - [deleted]             (none)     -> origin/0-flake-key
 - [deleted]             (none)     -> origin/0-obscuring
 - [deleted]             (none)     -> origin/0-router-lint
 - [deleted]             (none)     -> origin/0-router-service
 - [deleted]             (none)     -> origin/autoimport-cleanup
 - [deleted]             (none)     -> origin/category-bullet-only
 - [deleted]             (none)     -> origin/dependabot/bundler/syntax_tree-6.2.0
 - [deleted]             (none)     -> origin/dependabot/npm_and_yarn/app/assets/javascripts/uppy/aws-s3-3.4.0
 - [deleted]             (none)     -> origin/dependabot/npm_and_yarn/app/assets/javascripts/uppy/aws-s3-multipart-3.8.0
 - [deleted]             (none)     -> origin/dependabot/npm_and_yarn/app/assets/javascripts/uppy/core-3.6.0
 - [deleted]             (none)     -> origin/dependabot/npm_and_yarn/app/assets/javascripts/uppy/utils-5.5.2
 - [deleted]             (none)     -> origin/dependabot/npm_and_yarn/app/assets/javascripts/uppy/xhr-upload-3.4.2
 - [deleted]             (none)     -> origin/dev-upgrade-reject-reason-reviewable-modal
 - [deleted]             (none)     -> origin/dev/ability-to-collect-stats-without-public-exposing
 - [deleted]             (none)     -> origin/dev/minio-s3-system-specs
 - [deleted]             (none)     -> origin/dev/re-enable-minio-specs
 - [deleted]             (none)     -> origin/dev/switch-over-category-settings
 - [deleted]             (none)     -> origin/dev/switch-over-more-category-settings
 - [deleted]             (none)     -> origin/discovery-named-outlets
 - [deleted]             (none)     -> origin/feature/theme-settings-migration
 - [deleted]             (none)     -> origin/fix/account-for-empty-string-site-settings
 - [deleted]             (none)     -> origin/footnote-plugin
 - [deleted]             (none)     -> origin/metadata-update
 - [deleted]             (none)     -> origin/modal-ux
 - [deleted]             (none)     -> origin/neil-2
 - [deleted]             (none)     -> origin/perf_cache_async_search
 - [deleted]             (none)     -> origin/spoiler-plugin
 - [deleted]             (none)     -> origin/support-search-customizationz
   043b4a418..42a75e3df  main                   -> origin/main
 * [new branch]          0-lint-suffix          -> origin/0-lint-suffix
 * [new branch]          0-rubocop              -> origin/0-rubocop
 * [new branch]          0-timeoubara           -> origin/0-timeoubara
 * [new branch]          0-typos                -> origin/0-typos
 * [new branch]          add-custom-emoji-sanitization-clean -> origin/add-custom-emoji-sanitization-clean
 * [new branch]          add-ds-store-to-gitignore -> origin/add-ds-store-to-gitignore
 + 64520a075...ff17131c9 add-new-chat-indicator-preference-only-mentions -> origin/add-new-chat-indicator-preference-only-mentions  (forced update)
 * [new branch]          api-topic-title-decorator -> origin/api-topic-title-decorator
 * [new branch]          array-custom-field-fix -> origin/array-custom-field-fix
 * [new branch]          array-custom-field-order -> origin/array-custom-field-order
 * [new branch]          avatar-notifications   -> origin/avatar-notifications
 * [new branch]          boosted-searches       -> origin/boosted-searches
 * [new branch]          bulk-button-class      -> origin/bulk-button-class
 * [new branch]          category_definition    -> origin/category_definition
 * [new branch]          chat-github-onebox     -> origin/chat-github-onebox
 * [new branch]          chat-reaction-emoji-alignment -> origin/chat-reaction-emoji-alignment
 * [new branch]          chat/direct-messages   -> origin/chat/direct-messages
 * [new branch]          custom-field-store-cleanup -> origin/custom-field-store-cleanup
 * [new branch]          delete-backups-based-on-time-window -> origin/delete-backups-based-on-time-window
 * [new branch]          dependabot/npm_and_yarn/app/assets/javascripts/uppy/aws-s3-3.5.0 -> origin/dependabot/npm_and_yarn/app/assets/javascripts/uppy/aws-s3-3.5.0
 * [new branch]          dependabot/npm_and_yarn/app/assets/javascripts/uppy/aws-s3-multipart-3.9.0 -> origin/dependabot/npm_and_yarn/app/assets/javascripts/uppy/aws-s3-multipart-3.9.0
* [new branch]          dependabot/npm_and_yarn/app/assets/javascripts/uppy/core-3.7.1 -> origin/dependabot/npm_and_yarn/app/assets/javascripts/uppy/core-3.7.1
 * [new branch]          dependabot/npm_and_yarn/app/assets/javascripts/uppy/utils-5.6.0 -> origin/dependabot/npm_and_yarn/app/assets/javascripts/uppy/utils-5.6.0
 * [new branch]          dependabot/npm_and_yarn/app/assets/javascripts/uppy/xhr-upload-3.5.0 -> origin/dependabot/npm_and_yarn/app/assets/javascripts/uppy/xhr-upload-3.5.0
 * [new branch]          desktop-notification-handlers -> origin/desktop-notification-handlers
 * [new branch]          dev/add-a-reference-column-to-notifications -> origin/dev/add-a-reference-column-to-notifications
 + ee95e6359...346f9d1cd dev/add-new-chat-metrics -> origin/dev/add-new-chat-metrics  (forced update)
 * [new branch]          dev/dry-up-user-status-serializers -> origin/dev/dry-up-user-status-serializers
 * [new branch]          dev/flaky-chat-details-collapser-spec -> origin/dev/flaky-chat-details-collapser-spec
 * [new branch]          dev/no-need-to-include-user-status-twice -> origin/dev/no-need-to-include-user-status-twice
 * [new branch]          dev/rethink-mass-mentions -> origin/dev/rethink-mass-mentions
 * [new branch]          dev/rethink-mass-mentions-polymorphic -> origin/dev/rethink-mass-mentions-polymorphic
 * [new branch]          dev/revert-guardian-devex -> origin/dev/revert-guardian-devex
 * [new branch]          dev/use-system-user-id-const -> origin/dev/use-system-user-id-const
 + 54940ca5c...fb0c7ba69 dev_paginate_categories_json -> origin/dev_paginate_categories_json  (forced update)
 * [new branch]          dev_watched_words      -> origin/dev_watched_words
 + 46fe4511f...a9d0e7069 ember-4                -> origin/ember-4  (forced update)
 * [new branch]          ember-5-plugins        -> origin/ember-5-plugins
 * [new branch]          extract_stripper       -> origin/extract_stripper
 * [new branch]          feature/add-copy-share-link-post-functionality -> origin/feature/add-copy-share-link-post-functionality
   9a6c6fd5b..8780daeee  feature/bookmark-menu-and-modal-redesign -> origin/feature/bookmark-menu-and-modal-redesign
 * [new branch]          feature/migrations-schema-generator -> origin/feature/migrations-schema-generator
 * [new branch]          feature_watched_words_validation -> origin/feature_watched_words_validation
 * [new branch]          file-size-restriction  -> origin/file-size-restriction
   43df37774..4393dd37e  filtered-events        -> origin/filtered-events
 * [new branch]          fix/count-mass-mentions-correctly -> origin/fix/count-mass-mentions-correctly
 * [new branch]          fix_category_select_kits -> origin/fix_category_select_kits
 * [new branch]          full-page              -> origin/full-page
   ce7fb6906..a6227532d  generic-import-latest  -> origin/generic-import-latest
 * [new branch]          generic-import-latest-snowflake -> origin/generic-import-latest-snowflake
 * [new branch]          generic-import-update  -> origin/generic-import-update
 * [new branch]          image-assets           -> origin/image-assets
 * [new branch]          independent-theme-compiler -> origin/independent-theme-compiler
 * [new branch]          input-text-field-component -> origin/input-text-field-component
 * [new branch]          issue/fix-guardian-init-basic-user -> origin/issue/fix-guardian-init-basic-user
 * [new branch]          keyword-site-setting   -> origin/keyword-site-setting
 + bdcc24f96...92e545292 list-wrapper           -> origin/list-wrapper  (forced update)
   e3636078c..5def32699  mock-chat-index-redesign -> origin/mock-chat-index-redesign
 * [new branch]          move_inflector         -> origin/move_inflector
 * [new branch]          oklab                  -> origin/oklab
 * [new branch]          poc/auto-after-before-plugin-outlets -> origin/poc/auto-after-before-plugin-outlets
 * [new branch]          poc/insert-before-after-wrapping-outlet -> origin/poc/insert-before-after-wrapping-outlet
 * [new branch]          pretty-text-please     -> origin/pretty-text-please
 * [new branch]          revert-maxmind         -> origin/revert-maxmind
   ef3f41543..223626d7a  stable                 -> origin/stable
 * [new branch]          support-load-more-btn  -> origin/support-load-more-btn
 * [new branch]          test-issue-temporary   -> origin/test-issue-temporary
   043b4a418..42a75e3df  tests-passed           -> origin/tests-passed
 * [new branch]          tobiaseigen-patch-3    -> origin/tobiaseigen-patch-3
 * [new branch]          transform-hooks        -> origin/transform-hooks
 * [new branch]          transform-post-fn-api  -> origin/transform-post-fn-api
 * [new branch]          tweaks-2-fr            -> origin/tweaks-2-fr
 * [new branch]          use-sassc-embedded     -> origin/use-sassc-embedded
 * [new branch]          username_cache         -> origin/username_cache
 * [new branch]          ux-add-sorting-params-to-outlet -> origin/ux-add-sorting-params-to-outlet
 t [tag update]          beta                   -> beta
 t [tag update]          latest-release         -> latest-release
 * [new tag]             v3.1.3                 -> v3.1.3
 * [new tag]             v3.2.0.beta3           -> v3.2.0.beta3
I, [2023-12-06T20:26:58.926569 #1]  INFO -- : 
I, [2023-12-06T20:26:58.927227 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse bash -c '
  set -o errexit
  if [[ $(git symbolic-ref --short HEAD) == tests-passed ]] ; then
      git pull
  else
      git -c advice.detachedHead=false checkout tests-passed
  fi
'
Switched to a new branch 'tests-passed'
I, [2023-12-06T20:27:03.240852 #1]  INFO -- : Branch 'tests-passed' set up to track remote branch 'tests-passed' from 'origin'.

I, [2023-12-06T20:27:03.241691 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git config user.discourse-version tests-passed
I, [2023-12-06T20:27:03.259458 #1]  INFO -- : 
I, [2023-12-06T20:27:03.260307 #1]  INFO -- : > cd /var/www/discourse && mkdir -p tmp
I, [2023-12-06T20:27:03.268215 #1]  INFO -- : 
I, [2023-12-06T20:27:03.268948 #1]  INFO -- : > cd /var/www/discourse && chown discourse:www-data tmp
I, [2023-12-06T20:27:03.274182 #1]  INFO -- : 
I, [2023-12-06T20:27:03.274855 #1]  INFO -- : > cd /var/www/discourse && mkdir -p tmp/pids
I, [2023-12-06T20:27:03.278878 #1]  INFO -- : 
I, [2023-12-06T20:27:03.279454 #1]  INFO -- : > cd /var/www/discourse && mkdir -p tmp/sockets
I, [2023-12-06T20:27:03.283264 #1]  INFO -- : 
I, [2023-12-06T20:27:03.283766 #1]  INFO -- : > cd /var/www/discourse && touch tmp/.gitkeep
I, [2023-12-06T20:27:03.288610 #1]  INFO -- : 
I, [2023-12-06T20:27:03.289240 #1]  INFO -- : > cd /var/www/discourse && mkdir -p                    /shared/log/rails
I, [2023-12-06T20:27:03.294659 #1]  INFO -- : 
I, [2023-12-06T20:27:03.295302 #1]  INFO -- : > cd /var/www/discourse && bash -c "touch -a           /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log"
I, [2023-12-06T20:27:03.302627 #1]  INFO -- : 
I, [2023-12-06T20:27:03.303433 #1]  INFO -- : > cd /var/www/discourse && bash -c "ln    -s           /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log /var/www/discourse/log"
I, [2023-12-06T20:27:03.315829 #1]  INFO -- : 
I, [2023-12-06T20:27:03.316535 #1]  INFO -- : > cd /var/www/discourse && bash -c "mkdir -p           /shared/{uploads,backups}"
I, [2023-12-06T20:27:03.323346 #1]  INFO -- : 
I, [2023-12-06T20:27:03.324041 #1]  INFO -- : > cd /var/www/discourse && bash -c "ln    -s           /shared/{uploads,backups} /var/www/discourse/public"
I, [2023-12-06T20:27:03.329963 #1]  INFO -- : 
I, [2023-12-06T20:27:03.330611 #1]  INFO -- : > cd /var/www/discourse && bash -c "mkdir -p           /shared/tmp/{backups,restores}"
I, [2023-12-06T20:27:03.336990 #1]  INFO -- : 
I, [2023-12-06T20:27:03.338135 #1]  INFO -- : > cd /var/www/discourse && bash -c "ln    -s           /shared/tmp/{backups,restores} /var/www/discourse/tmp"
I, [2023-12-06T20:27:03.344705 #1]  INFO -- : 
I, [2023-12-06T20:27:03.345357 #1]  INFO -- : > cd /var/www/discourse && chown -R discourse:www-data /shared/log/rails /shared/uploads /shared/backups /shared/tmp
I, [2023-12-06T20:27:03.352154 #1]  INFO -- : 
I, [2023-12-06T20:27:03.352907 #1]  INFO -- : > cd /var/www/discourse && [ ! -d public/plugins ] || find public/plugins/ -maxdepth 1 -xtype l -delete
I, [2023-12-06T20:27:03.356397 #1]  INFO -- : 
I, [2023-12-06T20:27:03.358224 #1]  INFO -- : Replacing # redis with sv start redis || exit 1 in /etc/service/unicorn/run
I, [2023-12-06T20:27:03.359316 #1]  INFO -- : > cd /var/www/discourse/plugins && git clone https://github.com/discourse/docker_manager.git
Cloning into 'docker_manager'...
I, [2023-12-06T20:27:04.552327 #1]  INFO -- : 
I, [2023-12-06T20:27:04.553636 #1]  INFO -- : > cp /var/www/discourse/config/nginx.sample.conf /etc/nginx/conf.d/discourse.conf
I, [2023-12-06T20:27:04.563675 #1]  INFO -- : 
I, [2023-12-06T20:27:04.565087 #1]  INFO -- : > rm /etc/nginx/sites-enabled/default
I, [2023-12-06T20:27:04.571639 #1]  INFO -- : 
I, [2023-12-06T20:27:04.573162 #1]  INFO -- : > mkdir -p /var/nginx/cache
I, [2023-12-06T20:27:04.580350 #1]  INFO -- : 
I, [2023-12-06T20:27:04.582472 #1]  INFO -- : Replacing pid /run/nginx.pid; with daemon off; in /etc/nginx/nginx.conf
I, [2023-12-06T20:27:04.583466 #1]  INFO -- : Replacing (?m-ix:upstream[^\}]+\}) with upstream discourse { server 127.0.0.1:3000; } in /etc/nginx/conf.d/discourse.conf
I, [2023-12-06T20:27:04.584155 #1]  INFO -- : Replacing (?-mix:server_name.+$) with server_name _ ; in /etc/nginx/conf.d/discourse.conf
I, [2023-12-06T20:27:04.584716 #1]  INFO -- : Replacing (?-mix:client_max_body_size.+$) with client_max_body_size $upload_size ; in /etc/nginx/conf.d/discourse.conf
I, [2023-12-06T20:27:04.585271 #1]  INFO -- : Replacing (?-mix:worker_connections.+$) with worker_connections $nginx_worker_connections ; in /etc/nginx/nginx.conf
I, [2023-12-06T20:27:04.585727 #1]  INFO -- : > echo "done configuring web"
I, [2023-12-06T20:27:04.588861 #1]  INFO -- : done configuring web

I, [2023-12-06T20:27:04.589566 #1]  INFO -- : > cd /var/www/discourse && gem install bundler --conservative -v $(awk '/BUNDLED WITH/ { getline; gsub(/ /,""); print $0 }' Gemfile.lock)
I, [2023-12-06T20:27:04.923204 #1]  INFO -- : 
I, [2023-12-06T20:27:04.927970 #1]  INFO -- : > cd /var/www/discourse && find /var/www/discourse ! -user discourse -exec chown discourse {} \+
I, [2023-12-06T20:27:10.523499 #1]  INFO -- : 
I, [2023-12-06T20:27:10.524699 #1]  INFO -- : > cd /var/www/discourse && if [ "tests-passed" != "tests-passed" ]; then
  rm -rf app/assets/javascripts/node_modules
fi
I, [2023-12-06T20:27:10.527759 #1]  INFO -- : 
I, [2023-12-06T20:27:10.528364 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'yarn install --frozen-lockfile && yarn cache clean'
warning " > @glint/environment-ember-loose@1.1.0" has unmet peer dependency "@glimmer/component@^1.1.2".
warning " > @glint/environment-ember-template-imports@1.1.0" has unmet peer dependency "ember-template-imports@^3.0.0".
warning Resolution field "unset-value@2.0.1" is incompatible with requested version "unset-value@^1.0.0"
warning Pattern ["wrap-ansi@^7.0.0"] is trying to unpack in the same destination "/home/discourse/.cache/yarn/v6/npm-wrap-ansi-cjs-7.0.0-67e145cff510a6a6984bdf1152911d69d2eb9e43-integrity/node_modules/wrap-ansi-cjs" as pattern ["wrap-ansi-cjs@npm:wrap-ansi@^7.0.0"]. This could result in non-deterministic behavior, skipping.
warning " > discourse-markdown-it@1.0.0" has unmet peer dependency "xss@*".
warning "workspace-aggregator-943550ef-70f9-4b27-bc8f-8ecafe854b91 > discourse > @ember/legacy-built-in-components@0.5.0" has incorrect peer dependency "ember-source@>= 4.8".
warning "workspace-aggregator-943550ef-70f9-4b27-bc8f-8ecafe854b91 > discourse > @uppy/aws-s3@3.0.6" has incorrect peer dependency "@uppy/core@^3.1.2".
warning "workspace-aggregator-943550ef-70f9-4b27-bc8f-8ecafe854b91 > discourse > @uppy/aws-s3-multipart@3.1.3" has incorrect peer dependency "@uppy/core@^3.1.2".
warning "workspace-aggregator-943550ef-70f9-4b27-bc8f-8ecafe854b91 > discourse > @uppy/xhr-upload@3.1.1" has incorrect peer dependency "@uppy/core@^3.1.2".
warning "workspace-aggregator-943550ef-70f9-4b27-bc8f-8ecafe854b91 > discourse-plugins > ember-this-fallback@0.4.0" has unmet peer dependency "ember-source@^3.28.11 || ^4.0.0".
warning "workspace-aggregator-943550ef-70f9-4b27-bc8f-8ecafe854b91 > discourse > @uppy/aws-s3 > @uppy/xhr-upload@3.3.0" has incorrect peer dependency "@uppy/core@^3.2.1".
I, [2023-12-06T20:29:55.103882 #1]  INFO -- : yarn install v1.22.19
[1/5] Validating package.json...
[2/5] Resolving packages...
[3/5] Fetching packages...
[4/5] Linking dependencies...
[5/5] Building fresh packages...
$ yarn --cwd app/assets/javascripts $(node -e 'const argv = JSON.parse(process.env.npm_config_argv).original; const passthrough = [`--frozen-lockfile`, `-s`].filter(arg => argv.includes(arg)); console.log(passthrough.join(` `));')
yarn install v1.22.19
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
$ ./run-patch-package
patch-package 8.0.0
Applying patches...
babel-plugin-debug-macros@0.3.4 ✔
content-tag@1.1.2 ✔
ember-cli@5.0.0 ✔
ember-this-fallback@0.4.0 (1 deprecation-name) ✔
ember-this-fallback@0.4.0 (2 themes) ✔
virtual-dom@2.1.1 ✔
Done in 78.38s.
Done in 150.14s.
yarn cache v1.22.19
success Cleared cache.
Done in 13.55s.
I, [2023-12-06T20:29:55.136749 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle config --local deployment true'
I, [2023-12-06T20:29:55.567684 #1]  INFO -- : 
I, [2023-12-06T20:29:55.568701 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle config --local without "development test"'
I, [2023-12-06T20:29:55.820221 #1]  INFO -- : You are replacing the current local value of without, which is currently "test:development"

I, [2023-12-06T20:29:55.821029 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle install --retry 3 --jobs 4'
I, [2023-12-06T20:30:38.015883 #1]  INFO -- : Fetching gem metadata from https://rubygems.org/.........
Fetching rake 13.1.0
Installing rake 13.1.0
Using builder 3.2.4
Using erubi 1.12.0
Fetching racc 1.7.3
Using crass 1.0.6
Using minitest 5.20.0
Using concurrent-ruby 1.2.2
Using rack 2.2.8
Using mini_mime 1.1.5
Fetching timeout 0.4.1
Fetching public_suffix 5.0.4
Fetching date 3.3.4
Installing timeout 0.4.1
Installing racc 1.7.3 with native extensions
Installing date 3.3.4 with native extensions
Installing public_suffix 5.0.4
Fetching aws-eventstream 1.3.0
Installing aws-eventstream 1.3.0
Using jmespath 1.6.2
Fetching base64 0.2.0
Using aws-partitions 1.583.0
Using msgpack 1.7.2
Using bundler 2.4.13
Using byebug 11.1.3
Using cbor 0.5.9.6
Fetching cgi 0.4.1
Installing base64 0.2.0
Installing cgi 0.4.1 with native extensions
Using chunky_png 1.4.0
Using coderay 1.1.3
Using colored2 4.0.0
Using connection_pool 2.4.1
Using openssl 3.2.0
Using cppjieba_rb 0.4.2
Fetching google-protobuf 3.25.1 (x86_64-linux)
Installing google-protobuf 3.25.1 (x86_64-linux)
Using diffy 3.4.2
Using digest 3.1.1
Using discourse-fonts 0.0.9
Using email_reply_trimmer 0.1.13
Fetching excon 0.105.0
Installing excon 0.105.0
Using execjs 2.9.1
Using exifr 1.4.0
Using faraday-net_http 3.0.2
Using ruby2_keywords 0.0.5
Using fast_blank 1.0.1
Using fast_xs 0.8.0
Using fastimage 2.2.7
Using ffi 1.16.3
Using fspath 3.1.2
Using gc_tracer 1.5.1
Using guess_html_encoding 0.0.11
Using hana 1.3.7
Using hashie 5.0.0
Using highline 2.1.0
Using htmlentities 4.3.4
Using http_accept_language 2.1.1
Using image_size 3.3.0
Using in_threads 1.6.0
Using progress 3.6.0
Fetching json 2.7.1
Installing json 2.7.1 with native extensions
Fetching regexp_parser 2.8.3
Installing regexp_parser 2.8.3
Fetching unf_ext 0.0.9.1
Installing unf_ext 0.0.9.1 with native extensions
Using jwt 2.7.1
Using kgio 2.11.4
Using libv8-node 18.16.0.0 (x86_64-linux)
Using method_source 1.0.0
Using thor 1.3.0
Using zeitwerk 2.6.12
Using logstash-event 1.2.02
Fetching logster 2.13.1
Installing logster 2.13.1
Using lru_redux 1.1.0
Using lz4-ruby 0.3.3
Using maxminddb 0.1.22
Using memory_profiler 1.0.1
Using redis 4.8.1
Using mini_sql 1.5.0
Using multi_json 1.15.0
Using multi_xml 0.6.0
Using mustache 1.1.1
Fetching uri 0.13.0
Installing uri 0.13.0
Fetching nio4r 2.7.0
Installing nio4r 2.7.0 with native extensions
Using version_gem 1.1.3
Using oj 3.16.1
Using optimist 3.1.0
Using pg 1.5.4
Using raindrops 0.20.1
Using rchardet 1.8.0
Using rexml 3.2.6
Using rinku 2.0.6
Using rotp 6.3.0
Using rqrcode_core 1.2.0
Using rubyzip 2.3.2
Using sshkey 3.0.0
Using stackprof 0.2.25
Using i18n 1.14.1
Using tzinfo 2.0.6
Using rack-test 2.1.0
Using request_store 1.5.1
Using message_bus 4.3.8
Using rack-mini-profiler 3.1.1
Using rack-protection 3.1.0
Using sprockets 3.7.2 from https://github.com/rails/sprockets (at 3.x@f4d3dae)
Fetching net-protocol 0.2.2
Installing net-protocol 0.2.2
Using aws-sigv4 1.5.0
Using addressable 2.8.5
Fetching bootsnap 1.17.0
Installing bootsnap 1.17.0 with native extensions
Using openssl-signature_algorithm 1.3.0
Fetching sass-embedded 1.66.1 (x86_64-linux-gnu)
Installing sass-embedded 1.66.1 (x86_64-linux-gnu)
Using uglifier 4.2.0
Fetching faraday 2.7.12
Installing faraday 2.7.12
Using mini_suffix 0.3.3
Using omniauth 1.9.2
Using image_optim 0.31.3
Fetching nokogiri 1.15.5 (x86_64-linux)
Installing nokogiri 1.15.5 (x86_64-linux)
Fetching web-push 3.0.1
Installing web-push 3.0.1
Using mini_racer 0.8.0
Using pry 0.14.2
Using logstash-logger 0.26.1
Using sidekiq 6.5.12
Using redis-namespace 1.11.0
Fetching net-http 0.4.0
Using unf 0.1.4
Installing net-http 0.4.0
Using oauth-tty 1.0.5
Using snaky_hash 2.0.1
Fetching rbtrace 0.5.0
Using rss 0.3.0
Using unicorn 6.1.0
Using rqrcode 2.2.0
Using activesupport 7.0.7
Using tzinfo-data 1.2023.3
Using net-pop 0.1.2
Using net-smtp 0.4.0
Using aws-sdk-core 3.130.2
Using css_parser 1.16.0
Using cose 1.3.0
Fetching dartsass-ruby 3.0.2
Installing rbtrace 0.5.0 with native extensions
Installing dartsass-ruby 3.0.2
Using faraday-retry 2.2.0
Using oauth2 1.4.11
Fetching loofah 2.22.0
Installing loofah 2.22.0
Using ruby-readability 0.7.0
Using sanitize 6.1.0
Using rtlcss 0.2.1
Using pry-byebug 3.10.1
Using pry-rails 0.3.9
Using mini_scheduler 0.16.0
Using simpleidn 0.2.1
Using oauth 1.1.0
Using rails-dom-testing 2.2.0
Using globalid 1.2.1
Using activemodel 7.0.7
Using aws-sdk-kms 1.56.0
Using aws-sdk-sns 1.53.0
Using omniauth-oauth2 1.7.3
Using rails-html-sanitizer 1.6.0
Fetching json_schemer 2.1.1
Installing json_schemer 2.1.1
Using omniauth-oauth 1.2.0
Using actionview 7.0.7
Using activejob 7.0.7
Using active_model_serializers 0.8.4
Using activerecord 7.0.7
Using aws-sdk-s3 1.114.0
Using omniauth-facebook 9.0.0
Using omniauth-github 1.4.0
Using omniauth-google-oauth2 0.8.2
Using omniauth-twitter 1.4.0
Using actionpack 7.0.7
Using actionview_precompiler 0.3.0
Using discourse-seed-fu 2.3.12
Using railties 7.0.7
Using sprockets-rails 3.4.2
Using lograge 0.14.0
Using rails_failover 2.0.1
Using rails_multisite 5.0.0
Using puma 6.4.0
Fetching net-imap 0.4.7
Installing net-imap 0.4.7
Using mail 2.8.1
Using actionmailer 7.0.7
Bundle complete! 135 Gemfile dependencies, 170 gems now installed.
Gems in the groups 'development' and 'test' were not installed.
Bundled gems are installed into `./vendor/bundle`
I, [2023-12-06T20:30:38.029906 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'LOAD_PLUGINS=0 bundle exec rake plugin:pull_compatible_all'
I, [2023-12-06T20:30:42.946058 #1]  INFO -- : docker_manager is already at latest compatible version

I, [2023-12-06T20:30:42.947529 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
I, [2023-12-06T20:30:52.368108 #1]  INFO -- : 
I, [2023-12-06T20:30:52.370735 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake themes:update assets:precompile'
Node.js heap_size_limit (488.25) is less than 1024MB. Setting --max-old-space-size=1024.
Node.js heap_size_limit (488.25) is less than 2048MB. Disabling Webpack parallelization with JOBS=0 to conserve memory.
110:M 06 Dec 2023 20:31:39.033 * 100 changes in 300 seconds. Saving...
110:M 06 Dec 2023 20:31:39.037 * Background saving started by pid 3264
3264:C 06 Dec 2023 20:31:39.055 * DB saved on disk
3264:C 06 Dec 2023 20:31:39.056 * Fork CoW for RDB: current 0 MB, peak 0 MB, average 0 MB
110:M 06 Dec 2023 20:31:39.138 * Background saving terminated with success

<--- Last few GCs --->

[3250:0x75de170]   713299 ms: Scavenge 941.1 (1032.4) -> 939.7 (1032.4) MB, 11.8 / 0.0 ms  (average mu = 0.392, current mu = 0.720) allocation failure; 
[3250:0x75de170]   713376 ms: Scavenge 941.4 (1032.4) -> 940.0 (1032.4) MB, 13.1 / 0.0 ms  (average mu = 0.392, current mu = 0.720) allocation failure; 
[3250:0x75de170]   713474 ms: Scavenge 941.9 (1032.4) -> 940.4 (1036.4) MB, 19.8 / 0.0 ms  (average mu = 0.392, current mu = 0.720) allocation failure; 
<--- JS stacktrace --->

FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory
 1: 0xb83f50 node::Abort() [ember]
 2: 0xa94834  [ember]
 3: 0xd647c0 v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [ember]
 4: 0xd64b67 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [ember]
 5: 0xf42265  [ember]
 6: 0xf5474d v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [ember]
 7: 0xf2ee4e v8::internal::HeapAllocator::AllocateRawWithLightRetrySlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [ember]
 8: 0xf30217 v8::internal::HeapAllocator::AllocateRawWithRetryOrFailSlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [ember]
 9: 0xf113ea v8::internal::Factory::NewFillerObject(int, v8::internal::AllocationAlignment, v8::internal::AllocationType, v8::internal::AllocationOrigin) [ember]
10: 0x12d674f v8::internal::Runtime_AllocateInYoungGeneration(int, unsigned long*, v8::internal::Isolate*) [ember]
11: 0x17035b9  [ember]
Aborted (core dumped)
error Command failed with exit code 134.
I, [2023-12-06T20:42:53.261307 #1]  INFO -- : yarn run v1.22.19
$ /var/www/discourse/app/assets/javascripts/node_modules/.bin/ember build
Building
Environment: development
WARNING: ember-test-selectors: You are using an unsupported ember-cli-babel version. data-test properties are not automatically stripped from your JS code.
building... 
...[ConfigLoader]
...[Babel: discourse-widget-hbs > applyPatches]
...[Babel: ember-source > applyPatches]
...[ember.js]
...[Babel: discourse-common > applyPatches]
...[Babel: truth-helpers > applyPatches]
...[Babel: @ember/legacy-built-in-components > applyPatches]
...[Babel: @ember/render-modifiers > applyPatches]
...[Babel: @ember/test-waiters > applyPatches]
...[Babel: @embroider/util > applyPatches]
...[Babel: dialog-holder > applyPatches]
...[Babel: ember-this-fallback > applyPatches]
...[Babel: ember-cached-decorator-polyfill > applyPatches]
...[Babel: ember-exam > applyPatches]
...[Babel: ember-functions-as-helper-polyfill > applyPatches]
...[Babel: ember-resize-observer-service > applyPatches]
...[Babel: ember-router-service-refresh-polyfill > applyPatches]
...[Babel: float-kit > applyPatches]
...[Babel: select-kit > applyPatches]
...[@embroider/compat/app]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

I, [2023-12-06T20:42:53.304072 #1]  INFO -- : Terminating async processes
I, [2023-12-06T20:42:53.306771 #1]  INFO -- : Sending INT to HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 41
2023-12-06 20:42:53.307 UTC [41] LOG:  received fast shutdown request
I, [2023-12-06T20:42:53.309208 #1]  INFO -- : Sending TERM to exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 110
110:signal-handler (1701895373) Received SIGTERM scheduling shutdown...
2023-12-06 20:42:53.311 UTC [41] LOG:  aborting any active transactions
2023-12-06 20:42:53.331 UTC [41] LOG:  background worker "logical replication launcher" (PID 50) exited with exit code 1
2023-12-06 20:42:53.335 UTC [45] LOG:  shutting down
110:M 06 Dec 2023 20:42:53.367 # User requested shutdown...
110:M 06 Dec 2023 20:42:53.369 * Saving the final RDB snapshot before exiting.
2023-12-06 20:42:53.379 UTC [41] LOG:  database system is shut down
110:M 06 Dec 2023 20:42:53.392 * DB saved on disk
110:M 06 Dec 2023 20:42:53.393 # Redis is now ready to exit, bye bye...


FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake themes:update assets:precompile' failed with return #<Process::Status: pid 3186 exit 134>
Location of failure: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"assets_precompile", "cmd"=>["su discourse -c 'bundle exec rake themes:update assets:precompile'"]}
bootstrap failed with exit code 134
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
ce5db16b179d8bbe8be1cc8898c2d89a9f8259e5f4f6d6bbeda8e6fa69723aa5
==================== END REBUILD LOG ====================
Failed to rebuild app.

Checking your domain name . . .

Connection to forum.jimclair.com succeeded.
You should probably remove any non-standard plugins and rebuild.
Attempting to restart existing container. . . 
x86_64 arch detected.

+ /usr/bin/docker run --shm-size=512m -d --restart=always -e LANG=en_US.UTF-8 -e RAILS_ENV=production -e UNICORN_WORKERS=2 -e UNICORN_SIDEKIQS=1 -e RUBY_GC_HEAP_GROWTH_MAX_SLOTS=40000 -e RUBY_GC_HEAP_INIT_SLOTS=400000 -e RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR=1.5 -e DISCOURSE_DB_SOCKET=/var/run/postgresql -e DISCOURSE_DB_HOST= -e DISCOURSE_DB_PORT= -e LETSENCRYPT_DIR=/shared/letsencrypt -e DISCOURSE_FORCE_HTTPS=true -e LC_ALL=en_US.UTF-8 -e LANGUAGE=en_US.UTF-8 -e DISCOURSE_HOSTNAME=forum.jimclair.com -e DISCOURSE_DEVELOPER_EMAILS=REDACTED  -e DISCOURSE_SMTP_ADDRESS=in-v3.mailjet.com -e DISCOURSE_SMTP_PORT=587 -e DISCOURSE_SMTP_USER_NAME=495e2921d498a8d1d5ebb0afaccd7b1e -e DISCOURSE_SMTP_PASSWORD=REDACTED  -e DISCOURSE_SMTP_DOMAIN=forum.jimclair.com -e DISCOURSE_NOTIFICATION_EMAIL=noreply@forum.jimclair.com -e LETSENCRYPT_ACCOUNT_EMAIL=REDACTED  -h JimClairDiscourse-app -e DOCKER_HOST_IP=172.17.0.1 --name app -t -p 80:80 -p 443:443 -v /var/discourse/shared/standalone:/shared -v /var/discourse/shared/standalone/log/var-log:/var/log --mac-address 02:43:18:d7:5e:e0 local_discourse/app /sbin/boot
Unable to find image 'local_discourse/app:latest' locally
docker: Error response from daemon: pull access denied for local_discourse/app, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.
See 'docker run --help'.
Failed to restart the container.


==================== PLUGINS ====================
          - git clone https://github.com/discourse/docker_manager.git

No non-official plugins detected.

See https://github.com/discourse/discourse/blob/main/lib/plugin/metadata.rb for the official list.

========================================
Discourse version at forum.jimclair.com: NOT FOUND
Discourse version at localhost: NOT FOUND

==================== MEMORY INFORMATION ====================
OS: Linux
RAM (MB): 998

               total        used        free      shared  buff/cache   available
Mem:             952         363         254           3         493         589
Swap:           2047          87        1960

==================== DISK SPACE CHECK ====================
---------- OS Disk Space ----------
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        24G  7.7G   16G  33% /

==================== DISK INFORMATION ====================
Disk /dev/loop0: 73.9 MiB, 77492224 bytes, 151352 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop1: 180.94 MiB, 189730816 bytes, 370568 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop2: 40.86 MiB, 42840064 bytes, 83672 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/vda: 25 GiB, 26843545600 bytes, 52428800 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: F62235F3-8D92-4E44-9154-0DCF72CBCB9D

Device       Start      End  Sectors  Size Type
/dev/vda1  2099200 52428766 50329567   24G Linux filesystem
/dev/vda14    2048    10239     8192    4M BIOS boot
/dev/vda15   10240   227327   217088  106M EFI System
/dev/vda16  227328  2097152  1869825  913M Linux extended boot

Partition table entries are not in disk order.


Disk /dev/vdb: 466 KiB, 477184 bytes, 932 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

==================== END DISK INFORMATION ====================

==================== MAIL TEST ====================
For a robust test, get an address from http://www.mail-tester.com/
Sending mail to REDACTED  . . 


==================== DONE! ====================

You can examine the output of this script with 
LESS=-Ri less /tmp/discourse-debug.txt

I think you’re running into memory issues. As a workaround, you can temporarily resize your droplet to complete the rebuild and then reduce it again, if that helps?

1 Like

In round numbers, you have 1G RAM and 2G swap, and from the log we see ember ran out of memory. You have 16G free disk space - I’d suggest adding a 2G swapfile and trying again.

Edit: crossed in post. Indeed, a temporary upgrade to more RAM is another approach. Be sure to navigate the upgrade carefully so you can come back to the cheaper configuration - usually, that means keeping disk size the same.

Edit: there are a couple of kernel settings you should set to reduce consumption of virtual memory. See
MKJ’s Opinionated Discourse Deployment Configuration

3 Likes

In addition to a normal swapfile, I would suggest looking into zram, which lets you set a percentage of RAM for compressed swap space. The Debian package gives it a higher priority than normal swap, so it effectively acts as a very fast intermediate swapfile backed by RAM, and transparent compression means up to 5x space savings (ie. this very fast swapfile can hold up to 5x what normal RAM would normally hold).

It seems counterintuitive but it works very well.

2 Likes

I was testing this exact setup (1GB RAM + 2GB SWAP) and it fails 50% of the time during Ember build phase.

You can either keep trying or bump to a $12 2GB RAM droplet.

cc @david this is what we were discussing earlier this week.

6 Likes

Cross-linking this similar one - Upgrade from 3.2.0.beta3-dev to 3.2.0.beta3 failed due to out of memory - #9 by JammyDodger

I’ve had two sites recently with 8GB of RAM and no swap that failed like this. (At least somewhere it failed with an exit 137). In both cases I added 2gb of swap and they worked.

3 Likes

Hopefully - for me - this can be regarded as a bug?