サイト再構築後、オフライン (2025年2月4日)

最近の再構築後にこのメッセージが表示されました。その後 ./launcher rebuild app を実行しましたが、その後インスタンスにアクセスできなくなりました。標準的なインストールですが、何が起こったのか特定するにはどうすればよいですか?

./launcher logs app を実行した際の、エラー

cd /var/discourse
./launcher logs app
x86_64 arch detected.
run-parts: executing /etc/runit/1.d/00-ensure-links
run-parts: executing /etc/runit/1.d/00-fix-var-logs
run-parts: executing /etc/runit/1.d/01-cleanup-web-pids
run-parts: executing /etc/runit/1.d/anacron
run-parts: executing /etc/runit/1.d/cleanup-pids
Cleaning stale PID files
run-parts: executing /etc/runit/1.d/copy-env
run-parts: executing /etc/runit/1.d/letsencrypt
[Tue Feb  4 05:38:16 PM UTC 2025] Domains not changed.
[Tue Feb  4 05:38:16 PM UTC 2025] Skip, Next renewal time is: 2025-03-02T20:15:28Z
[Tue Feb  4 05:38:16 PM UTC 2025] Add '--force' to force to renew.
[Tue Feb  4 05:38:17 PM UTC 2025] Installing key to: /shared/ssl/mydomain.com.key
[Tue Feb  4 05:38:17 PM UTC 2025] Installing full chain to: /shared/ssl/mydomain.com.cer
[Tue Feb  4 05:38:17 PM UTC 2025] Run reload cmd: sv reload nginx
warning: nginx: unable to open supervise/ok: file does not exist
[Tue Feb  4 05:38:17 PM UTC 2025] Reload error for :
[Tue Feb  4 05:38:17 PM UTC 2025] Domains not changed.
[Tue Feb  4 05:38:17 PM UTC 2025] Skip, Next renewal time is: 2025-03-02T20:15:33Z
[Tue Feb  4 05:38:17 PM UTC 2025] Add '--force' to force to renew.
[Tue Feb  4 05:38:18 PM UTC 2025] Installing key to: /shared/ssl/mydomain.com_ecc.key
[Tue Feb  4 05:38:18 PM UTC 2025] Installing full chain to: /shared/ssl/mydomain.com_ecc.cer
[Tue Feb  4 05:38:18 PM UTC 2025] Run reload cmd: sv reload nginx
warning: nginx: unable to open supervise/ok: file does not exist
[Tue Feb  4 05:38:18 PM UTC 2025] Reload error for :
Started runsvdir, PID is 567
ok: run: redis: (pid 577) 0s
ok: run: postgres: (pid 581) 0s
nginx: [warn] duplicate extension "wasm", content type: "application/wasm", previous content type: "application/wasm" in /etc/nginx/conf.d/discourse.conf:4
supervisor pid: 575 unicorn pid: 607
Shutting Down
run-parts: executing /etc/runit/3.d/01-nginx
ok: down: nginx: 1s, normally up
run-parts: executing /etc/runit/3.d/02-unicorn
(575) exiting
ok: down: unicorn: 0s, normally up
run-parts: executing /etc/runit/3.d/10-redis
ok: down: redis: 1s, normally up
run-parts: executing /etc/runit/3.d/99-postgres
ok: down: postgres: 0s, normally up
ok: down: nginx: 5s, normally up
ok: down: postgres: 1s, normally up
ok: down: redis: 3s, normally up
ok: down: cron: 0s, normally up
ok: down: unicorn: 4s, normally up
ok: down: rsyslog: 0s, normally up
run-parts: executing /etc/runit/1.d/00-ensure-links
run-parts: executing /etc/runit/1.d/00-fix-var-logs
run-parts: executing /etc/runit/1.d/01-cleanup-web-pids
run-parts: executing /etc/runit/1.d/anacron
run-parts: executing /etc/runit/1.d/cleanup-pids
Cleaning stale PID files
run-parts: executing /etc/runit/1.d/copy-env
run-parts: executing /etc/runit/1.d/letsencrypt
[Tue Feb  4 05:58:32 PM UTC 2025] Domains not changed.
[Tue Feb  4 05:58:32 PM UTC 2025] Skip, Next renewal time is: 2025-03-02T20:15:28Z
[Tue Feb  4 05:58:32 PM UTC 2025] Add '--force' to force to renew.
[Tue Feb  4 05:58:32 PM UTC 2025] Installing key to: /shared/ssl/mydomain.com.key
[Tue Feb  4 05:58:32 PM UTC 2025] Installing full chain to: /shared/ssl/mydomain.com.cer
[Tue Feb  4 05:58:32 PM UTC 2025] Run reload cmd: sv reload nginx
fail: nginx: runsv not running
[Tue Feb  4 05:58:32 PM UTC 2025] Reload error for :
[Tue Feb  4 05:58:32 PM UTC 2025] Domains not changed.
[Tue Feb  4 05:58:32 PM UTC 2025] Skip, Next renewal time is: 2025-03-02T20:15:33Z
[Tue Feb  4 05:58:32 PM UTC 2025] Add '--force' to force to renew.
[Tue Feb  4 05:58:32 PM UTC 2025] Installing key to: /shared/ssl/mydomain.com_ecc.key
[Tue Feb  4 05:58:32 PM UTC 2025] Installing full chain to: /shared/ssl/mydomain.com_ecc.cer
[Tue Feb  4 05:58:32 PM UTC 2025] Run reload cmd: sv reload nginx
fail: nginx: runsv not running
[Tue Feb  4 05:58:32 PM UTC 2025] Reload error for :
Started runsvdir, PID is 561
ok: run: redis: (pid 575) 0s
nginx: [warn] duplicate extension "wasm", content type: "application/wasm", previous content type: "application/wasm" in /etc/nginx/conf.d/discourse.conf:4
ok: run: postgres: (pid 580) 1s
supervisor pid: 570 unicorn pid: 601
Shutting Down
run-parts: executing /etc/runit/3.d/01-nginx
ok: down: nginx: 0s, normally up
run-parts: executing /etc/runit/3.d/02-unicorn
(570) exiting
ok: down: unicorn: 1s, normally up
run-parts: executing /etc/runit/3.d/10-redis
ok: down: redis: 0s, normally up
run-parts: executing /etc/runit/3.d/99-postgres
ok: down: postgres: 0s, normally up
ok: down: nginx: 3s, normally up
ok: down: postgres: 1s, normally up
ok: down: redis: 1s, normally up
ok: down: cron: 0s, normally up
ok: down: unicorn: 3s, normally up
ok: down: rsyslog: 0s, normally up
run-parts: executing /etc/runit/1.d/00-ensure-links
run-parts: executing /etc/runit/1.d/00-fix-var-logs
run-parts: executing /etc/runit/1.d/01-cleanup-web-pids
run-parts: executing /etc/runit/1.d/anacron
run-parts: executing /etc/runit/1.d/cleanup-pids
Cleaning stale PID files
run-parts: executing /etc/runit/1.d/copy-env
run-parts: executing /etc/runit/1.d/letsencrypt
[Tue Feb  4 06:01:07 PM UTC 2025] Domains not changed.
[Tue Feb  4 06:01:07 PM UTC 2025] Skip, Next renewal time is: 2025-03-02T20:15:28Z
[Tue Feb  4 06:01:07 PM UTC 2025] Add '--force' to force to renew.
[Tue Feb  4 06:01:07 PM UTC 2025] Installing key to: /shared/ssl/mydomain.com.key
[Tue Feb  4 06:01:07 PM UTC 2025] Installing full chain to: /shared/ssl/mydomain.com.cer
[Tue Feb  4 06:01:07 PM UTC 2025] Run reload cmd: sv reload nginx
fail: nginx: runsv not running
[Tue Feb  4 06:01:07 PM UTC 2025] Reload error for :
[Tue Feb  4 06:01:07 PM UTC 2025] Domains not changed.
[Tue Feb  4 06:01:07 PM UTC 2025] Skip, Next renewal time is: 2025-03-02T20:15:33Z
[Tue Feb  4 06:01:07 PM UTC 2025] Add '--force' to force to renew.
[Tue Feb  4 06:01:07 PM UTC 2025] Installing key to: /shared/ssl/mydomain.com_ecc.key
[Tue Feb  4 06:01:07 PM UTC 2025] Installing full chain to: /shared/ssl/mydomain.com_ecc.cer
[Tue Feb  4 06:01:07 PM UTC 2025] Run reload cmd: sv reload nginx
fail: nginx: runsv not running
[Tue Feb  4 06:01:07 PM UTC 2025] Reload error for :
Started runsvdir, PID is 561
ok: run: redis: (pid 575) 0s
ok: run: postgres: (pid 576) 0s
nginx: [warn] duplicate extension "wasm", content type: "application/wasm", previous content type: "application/wasm" in /etc/nginx/conf.d/discourse.conf:4
supervisor pid: 570 unicorn pid: 601
(570) exiting
nginx: [warn] duplicate extension "wasm", content type: "application/wasm", previous content type: "application/wasm" in /etc/nginx/conf.d/discourse.conf:4
「いいね!」 3

すべてが順調に進んでいました。以下の内容を見て再構築しました。ビルドはエラーなく完了しましたが、私のサイトは開きません。

-------------------------------------------------------------------------------------
POSTGRESのアップグレード完了

古い13のデータベースは /shared/postgres_data_old に保存されています

アップグレードを完了するには、再度次のコマンドを使用して再ビルドしてください:

./launcher rebuild app
-------------------------------------------------------------------------------------

このコマンドを実行すると
tail /var/discourse/shared/standalone/log/var-log/postgres/current
の出力は次のとおりです

2025-02-04 18:11:50.943 UTC [573] LOG:  シャットダウン中
2025-02-04 18:11:50.945 UTC [573] LOG:  チェックポイント開始:即時シャットダウン
2025-02-04 18:11:50.970 UTC [573] LOG:  チェックポイント完了:139バッファ書き込み (0.0%);WALファイルは0つ追加、0つ削除、0つリサイクル;書き込み=0.017秒、同期=0.005秒、合計=0.027秒;同期化ファイル=27、最長=0.002秒、平均=0.001秒;距離=410 kB、推定=410 kB
2025-02-04 18:11:51.034 UTC [547] LOG:  データベースシステムはシャットダウンされました
2025-02-04 18:15:04.302 UTC [548] LOG:  PostgreSQL 15.10 (Debian 15.10-1.pgdg120+1)の起動中
2025-02-04 18:15:04.303 UTC [548] LOG:  IPv4アドレス "0.0.0.0"で待ち受けています, ポート 5432
2025-02-04 18:15:04.303 UTC [548] LOG:  IPv6アドレス "::"で待ち受けています, ポート 5432
2025-02-04 18:15:04.305 UTC [548] LOG:  Unixソケット "/var/run/postgresql/.s.PGSQL.5432"で待ち受けています
2025-02-04 18:15:04.313 UTC [575] LOG:  データベースシステムは2025-02-04 18:14:37 UTCにシャットダウンされました
2025-02-04 18:15:04.318 UTC [548] LOG:  データベースシステムは接続を受け付ける準備ができています

また、./launcher logs appの出力は次のとおりです

x86_64アーキテクチャ検出済み
run-parts: /etc/runit/1.d/00-ensure-linksを実行中
run-parts: /etc/runit/1.d/00-fix-var-logsを実行中
run-parts: /etc/runit/1.d/01-cleanup-web-pidsを実行中
run-parts: /etc/runit/1.d/anacronを実行中
run-parts: /etc/runit/1.d/cleanup-pidsを実行中
古いPIDファイルのクリーニング中
run-parts: /etc/runit/1.d/copy-envを実行中
run-parts: /etc/runit/1.d/letsencryptを実行中
[Tue Feb  4 06:15:03 PM UTC 2025] ドメインは変更されていません。
[Tue Feb  4 06:15:03 PM UTC 2025] スキップ、次の更新時間は: 2025-02-09T00:30:10Z
[Tue Feb  4 06:15:03 PM UTC 2025] '--force'を追加して更新を強制します。
[Tue Feb  4 06:15:03 PM UTC 2025] 鍵をインストール中: /shared/ssl/forum.myforum.com.key
[Tue Feb  4 06:15:03 PM UTC 2025] 完全チェーンをインストール中: /shared/ssl/forum.myforum.com.cer
[Tue Feb  4 06:15:03 PM UTC 2025] reloadコマンドを実行中: sv reload nginx
警告:nginx: supervise/okファイルを開けません:存在しません
[Tue Feb  4 06:15:03 PM UTC 2025] リロードエラー:
[Tue Feb  4 06:15:03 PM UTC 2025] ドメインは変更されていません。
[Tue Feb  4 06:15:03 PM UTC 2025] スキップ、次の更新時間は: 2025-02-09T00:30:15Z
[Tue Feb  4 06:15:03 PM UTC 2025] '--force'を追加して更新を強制します。
[Tue Feb  4 06:15:04 PM UTC 2025] 鍵をインストール中: /shared/ssl/forum.myforum.com_ecc.key
[Tue Feb  4 06:15:04 PM UTC 2025] 完全チェーンをインストール中: /shared/ssl/forum.myforum.com_ecc.cer
[Tue Feb  4 06:15:04 PM UTC 2025] reloadコマンドを実行中: sv reload nginx
警告:nginx: supervise/okファイルを開けません:存在しません
[Tue Feb  4 06:15:04 PM UTC 2025] リロードエラー:
SサーバーのPIDは546、ユニコーンのPIDは579
「いいね!」 2

これは、本日コマンドラインからアップデートした後、私の2つのセルフホストサイトでも発生しています。これらはカスタマイズや非公式プラグインのない非常に標準的なインストールであり、定期的に最新の状態に保たれ、通常は問題なくアップデートされます。

現在、上記 @mwaniki さんの提案を試しており、どのように機能するか確認して、ここに報告します。

「いいね!」 2

アプリを再ビルドしたところ、アップデートは正常に完了しましたが、エラーは表示されないにもかかわらず、サイトにアクセスできません。何か考えはありますか?

./launcher logs app

WARNING: Docker version 20.10.12 deprecated, recommend upgrade to 24.0.7 or newer.
x86_64 arch detected.
WARNING: containers/app.yml file is world-readable. You can secure this file by running: chmod o-rwx containers/app.yml
run-parts: executing /etc/runit/1.d/00-ensure-links
run-parts: executing /etc/runit/1.d/00-fix-var-logs
run-parts: executing /etc/runit/1.d/01-cleanup-web-pids
run-parts: executing /etc/runit/1.d/anacron
run-parts: executing /etc/runit/1.d/cleanup-pids
Cleaning stale PID files
run-parts: executing /etc/runit/1.d/copy-env
run-parts: executing /etc/runit/1.d/letsencrypt
[Tue Feb  4 07:12:15 PM UTC 2025] Domains not changed.
[Tue Feb  4 07:12:15 PM UTC 2025] Skip, Next renewal time is: 2025-03-06T00:39:07Z
[Tue Feb  4 07:12:15 PM UTC 2025] Add '--force' to force to renew.
[Tue Feb  4 07:12:16 PM UTC 2025] Installing key to: /shared/ssl/forum.******.com.key
[Tue Feb  4 07:12:16 PM UTC 2025] Installing full chain to: /shared/ssl/forum.*****.com.cer
[Tue Feb  4 07:12:16 PM UTC 2025] Run reload cmd: sv reload nginx
warning: nginx: unable to open supervise/ok: file does not exist
[Tue Feb  4 07:12:16 PM UTC 2025] Reload error for :
[Tue Feb  4 07:12:16 PM UTC 2025] Domains not changed.
[Tue Feb  4 07:12:16 PM UTC 2025] Skip, Next renewal time is: 2025-03-06T00:39:11Z
[Tue Feb  4 07:12:16 PM UTC 2025] Add '--force' to force to renew.
[Tue Feb  4 07:12:16 PM UTC 2025] Installing key to: /shared/ssl/forum.*****.com_ecc.key
[Tue Feb  4 07:12:16 PM UTC 2025] Installing full chain to: /shared/ssl/forum.ü_ecc.cer
[Tue Feb  4 07:12:16 PM UTC 2025] Run reload cmd: sv reload nginx
warning: nginx: unable to open supervise/ok: file does not exist
[Tue Feb  4 07:12:16 PM UTC 2025] Reload error for :
Started runsvdir, PID is 535
ok: run: redis: (pid 545) 0s
nginx: [warn] duplicate extension "wasm", content type: "application/wasm", previous content type: "application/wasm" in /etc/nginx/conf.d/discourse.conf:4
ok: run: postgres: (pid 548) 0s
supervisor pid: 542 unicorn pid: 575
「いいね!」 2

「サイトが全く応答しない」のは、Postgresのアップデートとは関係ないと思います。今調べています :eyes:

「いいね!」 5

この問題が解決されるのを心待ちにしています。ユーザーから、なぜフォーラムにアクセスできないのかという問い合わせメールが何百件も届いています :frowning:

「いいね!」 4

ご迷惑をおかけして申し訳ありません! 修正 がリリースされましたので、再度 ./launcher rebuild app を実行すると復旧するはずです。

その後も問題が続く場合は、お知らせください。

「いいね!」 13

仕事中 :slight_smile:

「いいね!」 4

やったー、フォーラムが復活しました。迅速な解決をありがとうございます。だから私たちはDiscourseが大好きなんです :heart:

「いいね!」 4

修正ありがとうございます!私も再構築で何がうまくいかなかったのかを解明するために、過去2時間以上を費やしました。すべてうまくいきました!

メタ的な観察:このフォーラムで問題を調査しているとき、フォーラム検索結果のデフォルトの「関連性」ソートが私にとって不利に働きました。私が検索したエラーログは、ここにあるものと全く同じでしたが、この最近のトピックは結果リストの何ページも下に表示されていました(おそらくその新しさのため)。そのため、メタのフロントページを偶然開いてトレンドになっているのを見るまで、このトピックを見つけることができませんでした。将来の再構築の問題を調査する際には、フロントページや最新の結果も確認すべきだという自分自身/他人への注意点だと思います。

「いいね!」 6

素晴らしいフィードバックですね!この会話は当初、PostgreSQL 15 update で行われていましたが、David が PostgreSQL のアップデートとは関係がないことに気づき、関連する投稿を新しいトピックに移動しました。それは約1時間前に起こったばかりなので、それまでは見つけられなかったでしょう!

アップデートのトラブルシューティングは非常に困難です。Discourse のアップデートは通常非常にスムーズなので、ほとんどのセルフホスティング者は、Discourse が内部でどのように機能するかを学んだり、トラブルシューティングの手順を学んだりする必要がないため、なおさらです!

この件を調査し、迅速に修正を見つけてくれた @david に感謝します!

「いいね!」 3

モバイルアプリからDockerを更新したところ、通常は問題の前兆となる「コンソール経由で更新してください」というメッセージが表示されました。

手動の更新手順をすべて実行しましたが、ランチャーのアプリ再構築は毎回失敗します。

ランチャーのアプリ起動で復旧できるため、サイトは動作しています。

これがPostgresのエラーに関連しているのか、あるいはどこに問題があるのかは不明です。

「いいね!」 2

それは、このトピックで議論されてきた問題とは異なることを示唆しています。
この問題では、再構築はエラーなく成功していましたが、サイトの読み込みに失敗していました。./launcher start は役に立ちませんでした。

そのため、表示されているエラーの詳細を添えて、新しい Support トピックを開くことをお勧めします。

「いいね!」 2

サイトの再構築後、オンラインに戻りました。ありがとうございます!:+1:

「いいね!」 4

結局は私の読解力の問題でした。Postgresデータベースが正常にシャットダウンしていなかったことが原因だと断言できます。正しい手順に従ったところ、すべてが元通りに動作しました。皆さん、ありがとうございます。物事がうまくいかなくなり、少しパニックになったときに、より冷静な皆さんが助けてくれる場所があるのは素晴らしいことです。

ありがとうございます!!!

「いいね!」 7

私には機能しません

「いいね!」 2

では、別の問題である必要があります。詳細を添えて、新しい Support トピックを開いてください。最善を尽くしてサポートさせていただきます。

混乱を避けるため、この特定の問題は解決したので、このトピックは終了します。