While trying to upgrade my self-hosted Discourse instance forum.embeetle.com:
git pull
./launcher rebuild app
I got this error:
sh: 1: yarn: not found
and the forum is down.
This issue looks similar (also mentions yarn: not found), but doesn’t provide a solution that I know how to apply:
Here is the last part of the output of ./launcher rebuild app
, including the error:
I, [2022-04-15T12:58:22.640335 #1] INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake plugin:pull_compatible_all'
WARNING: Plugins were activated before running `rake plugin:pull_compatible_all`
You should prefix this command with LOAD_PLUGINS=0
I, [2022-04-15T12:58:28.725935 #1] INFO -- : discourse-bbcode-color is already at latest compatible version
docker_manager is already at latest compatible version
discourse-math is already at latest compatible version
I, [2022-04-15T12:58:28.726300 #1] INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
I, [2022-04-15T12:58:35.125132 #1] INFO -- :
I, [2022-04-15T12:58:35.125478 #1] INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake themes:update assets:precompile'
sh: 1: yarn: not found
I, [2022-04-15T12:58:39.396023 #1] INFO -- : Checking 'Tag Icons' for 'default'...
I, [2022-04-15T12:58:39.396636 #1] INFO -- : Terminating async processes
I, [2022-04-15T12:58:39.396757 #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: 57
I, [2022-04-15T12:58:39.396823 #1] INFO -- : Sending TERM to exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 174
2022-04-15 12:58:39.396 UTC [57] LOG: received fast shutdown request
174:signal-handler (1650027519) Received SIGTERM scheduling shutdown...
174:M 15 Apr 2022 12:58:39.399 # User requested shutdown...
174:M 15 Apr 2022 12:58:39.399 * Saving the final RDB snapshot before exiting.
2022-04-15 12:58:39.416 UTC [57] LOG: aborting any active transactions
174:M 15 Apr 2022 12:58:39.417 * DB saved on disk
174:M 15 Apr 2022 12:58:39.417 # Redis is now ready to exit, bye bye...
2022-04-15 12:58:39.418 UTC [57] LOG: background worker "logical replication launcher" (PID 66) exited with exit code 1
2022-04-15 12:58:39.421 UTC [61] LOG: shutting down
2022-04-15 12:58:39.544 UTC [57] LOG: database system is shut down
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake themes:update assets:precompile' failed with return #<Process::Status: pid 5379 exit 127>
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"assets_precompile", "cmd"=>["su discourse -c 'bundle exec rake themes:update assets:precompile'"]}
13c38843d2b7e10b51c38f0d998f9e6e1c84fec93c7fc2ab2c044834ee6a8e59
** 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.
The output of discourse-doctor
is too large to post here, so I include the part that looks most significant to me:
root@foechoer:/srv/embeetle_forum/discourse# ./discourse-doctor
DISCOURSE DOCTOR Fri Apr 15 14:59:02 CEST 2022
OS: Linux foechoer.sikando.com 4.15.0-142-generic #146-Ubuntu SMP Tue Apr 13 01:11:19 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Found containers/app.yml
==================== YML SETTINGS ====================
DISCOURSE_HOSTNAME=forum.embeetle.com
SMTP_ADDRESS=smtp.zoho.com #mail.embeetle.com
DEVELOPER_EMAILS=johan@embeetle.com,kristof@embeetle.com,matic@embeetle.com
SMTP_PASSWORD=PASSWORD
SMTP_PORT=587
SMTP_USER_NAME=forum@embedeer.com
LETSENCRYPT_ACCOUNT_EMAIL=postmaster@sikando.com
==================== DOCKER INFO ====================
DOCKER VERSION: Docker version 20.10.14, build a224086
DOCKER PROCESSES (docker ps -a)
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f972c6ac40db nginx:latest "/docker-entrypoint.…" 16 hours ago Up 16 hours 80/tcp docker_chipselect_1
b8eaa7fc632d docker_cs_php "docker-php-entrypoi…" 16 hours ago Up 16 hours 9000/tcp docker_cs_php_1
51c18c3af7d2 mariadb:latest "docker-entrypoint.s…" 16 hours ago Up 16 hours 3306/tcp docker_cs_mysql_1
b018a429fc83 hello-world "/hello" 3 days ago Exited (0) 3 days ago blissful_wiles
f4064f10924a local_discourse/app "/sbin/boot" 11 months ago Exited (5) 2 minutes ago app
bff8181744a2 discourse/base:2.0.20210415-1332 "/bin/bash -c 'cd /p…" 11 months ago Exited (0) 11 months ago vigilant_einstein
fb6cca53886d discourse/base:2.0.20210415-1332 "/bin/bash -c 'cd /p…" 11 months ago Exited (0) 11 months ago gifted_mclaren
ea974bead75f discourse/base:2.0.20201221-2020 "/bin/bash -c 'cd /p…" 13 months ago Exited (0) 13 months ago ecstatic_margulis
==================== SERIOUS PROBLEM!!!! ====================
app not running!
Attempting to rebuild
==================== REBUILD LOG ====================
...(omitted long output)...
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake themes:update assets:precompile' failed with return #<Process::Status: pid 5379 exit 127>
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"assets_precompile", "cmd"=>["su discourse -c 'bundle exec rake themes:update assets:precompile'"]}
1fc0ce85c275da0c2c9f39bc496581b4a5a80f0888378733e1e6e177698dc110
** 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.
==================== END REBUILD LOG ====================
Failed to rebuild app.
Checking your domain name . . .
Connection to forum.embeetle.com succeeded.
You should probably remove any non-standard plugins and rebuild.
Attempting to restart existing container. . .
starting up existing container
+ /usr/bin/docker start app
app
f4064f10924a local_discourse/app "/sbin/boot" 11 months ago Up Less than a second app
Restarted the container.
==================== PLUGINS ====================
- git clone https://github.com/discourse/docker_manager.git
- git clone https://github.com/discourse/discourse-math.git
- git clone https://github.com/discourse/discourse-bbcode-color.git
No non-official plugins detected.
See https://github.com/discourse/discourse/blob/master/lib/plugin/metadata.rb for the official list.
========================================
Discourse version at forum.embeetle.com: NOT FOUND
Discourse version at localhost: NOT FOUND
==================== MEMORY INFORMATION ====================
RAM (MB): 20553
total used free shared buff/cache available
Mem: 20071 4444 9431 292 6195 15517
Swap: 2047 96 1951
==================== DISK SPACE CHECK ====================
---------- OS Disk Space ----------
df: /var/discourse: No such file or directory
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 1.4T 1.1T 279G 79% /
==================== DISK INFORMATION ====================
Disk /dev/loop0: 111.6 MiB, 117014528 bytes, 228544 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: 61.9 MiB, 64901120 bytes, 126760 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/loop3: 43.9 MiB, 45998080 bytes, 89840 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/loop4: 110.6 MiB, 115986432 bytes, 226536 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/loop5: 61.9 MiB, 64901120 bytes, 126760 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/loop6: 43.9 MiB, 45998080 bytes, 89840 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/sda: 1.4 TiB, 1503238553600 bytes, 2936012800 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: dos
Disk identifier: 0x645c17b2
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 1953791 1951744 953M 83 Linux
/dev/sda2 1953792 2936010751 2934056960 1.4T 83 Linux
==================== END DISK INFORMATION ====================
==================== MAIL TEST ====================
For a robust test, get an address from http://www.mail-tester.com/
Or just send a test message to yourself.
Email address for mail test? ('n' to skip) [johan@embeetle.com]:
Sending mail to johan@embeetle.com. . .
Testing sending to johan@embeetle.com using smtp.zoho.com:587, username:forum@embedeer.com with plain auth.
SMTP server connection successful.
Sending to johan@embeetle.com. . .
Mail accepted by SMTP server.
Message-ID: 0268f0a5-e5d3-430d-85ab-3c7f3e173487@forum.embeetle.com
If you do not receive the message, check your SPAM folder
or test again using a service like http://www.mail-tester.com/.
If the message is not delivered it is not a problem with Discourse.
Check the SMTP server logs for the above Message ID to see why it
failed to deliver the message.
Replacing: SMTP_PASSWORD
Replacing: LETSENCRYPT_ACCOUNT_EMAIL
Replacing: DEVELOPER_EMAILS
Replacing: DISCOURSE_DB_PASSWORD
Replacing: Sending mail to
==================== DONE! ====================
Would you like to serve a publicly available version of this file? (Y/n)y
Publicly available log not generated.
You can examine the output of this script with
LESS=-Ri less /tmp/discourse-debug.txt
BUT FIRST, make sure that you know the first three commands below!!!
Commands to know when viewing the file with the above command (called 'less'):
q -- quit
/error<ENTER> -- search for the word 'error'
n -- search for the next occurrence
g -- go to the beginning of the file
f -- go forward a page
b -- go back a page
G -- go to the end of the file