3.5.0.beta8-dev から 3.6.0.beta1 へのアップグレードに失敗しました

自己ホストしており、最近コアに移行された3つのプラグインがあります。

アップグレード手順:

  1. containers/app.yml を編集し、3つのプラグイン(data-explorer、solved、assign)の行を削除しました。
  2. cd /var/discourse
  3. sudo ./launcher rebuild app

再構築は通常どおり5分かかり、正常に完了したようです。

しかし、サイトに接続しようとすると、応答がありません。

/var/discourse/shared/standalone/log/rails/production.log の最後の数行は次のとおりです。

Booted Rails 8.0.3 application in production environment
Running in ruby 3.3.8 (2025-04-09 revision b200bad6cd) [x86_64-linux]
See LICENSE and the LGPL-3.0 for licensing details.
Upgrade to Sidekiq Pro for more features and support: ``https://sidekiq.org
Sidekiq 7.3.9 connecting to Redis with options {:size=>5, :pool_name=>“default”, :host=>“localhost”, :port=>6379, :db=>1, :url=>nil}
Sidekiq 7.3.9 connecting to Redis with options {:size=>10, :pool_name=>“internal”, :host=>“localhost”, :port=>6379, :db=>1, :url=>nil}
Sidekiq 7.3.9 connecting to Redis with options {:size=>10, :pool_name=>“internal”, :host=>“localhost”, :port=>6379, :db=>1, :url=>nil}
Sidekiq 7.3.9 connecting to Redis with options {:size=>10, :pool_name=>“internal”, :host=>“localhost”, :port=>6379, :db=>1, :url=>nil}
Sidekiq 7.3.9 connecting to Redis with options {:size=>10, :pool_name=>“internal”, :host=>“localhost”, :port=>6379, :db=>1, :url=>nil}
Sidekiq 7.3.9 connecting to Redis with options {:size=>10, :pool_name=>“internal”, :host=>“localhost”, :port=>6379, :db=>1, :url=>nil}

/var/discourse/shared/standalone/log/rails/unicorn.stderr.log の最後の数行は次のとおりです。

/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/message_bus-4.4.1/lib/message_bus/backends/redis.rb:291:in global_subscribe' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/message_bus-4.4.1/lib/message_bus.rb:769:in global_subscribe_thread’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/message_bus-4.4.1/lib/message_bus.rb:740:in `block in new_subscriber_thread’
unknown OID 23281: failed to recognize type of ‘embeddings’. It will be treated as String.

2回目の再構築も試しましたが、まだ機能しません。

何が起こっているのか、何か考えはありますか?

「いいね!」 1

リクエストはタイムアウトしますか?

サーバーは接続を拒否します。試した両方のブラウザで接続が拒否されるのに約2秒かかり、production.logには何も新しいものは表示されません。

何か原因がお分かりになりますか? 追加のデバッグ手順について、何か提案はありますか?

2つの点を確認します。

  • サーバープロセスが実行されており、リッスンしていますか?
  • ブラウザは正しいサーバーに接続しようとしていますか?

ご自身のPCから、フォーラムのURLのドメイン名がサーバーのIPアドレスに解決されることを確認してください。再確認してください。

おそらく、サーバーで以下を試してください。

ping -c1 DOMAINNAME
netstat -l | egrep http
lsof -u root | egrep LISTEN

試すことができます

docker logs app

最後に手伝った人は、Let’s Encrypt のメールアドレスに不正な値が入っていました。nginx が何らかの理由で起動していないようです。最も一般的な理由は、証明書が破損していることです。