从 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.

我也尝试了第二次重建,但仍然无法正常工作。

有什么想法是什么原因吗?

1 个赞

那么请求超时了吗?

服务器拒绝了连接。在我尝试过的两个浏览器中,连接似乎都需要大约 2 秒钟才能被拒绝。并且 production.log 中没有出现任何新内容。

有什么想法是什么原因吗?有什么建议的调试步骤吗?

我会查看两件事:

  • 服务器进程是否正在运行并监听
  • 您的浏览器是否正在尝试联系正确的服务器

检查您的论坛 URL 的域名是否可以从您自己的 PC 解析到您服务器的 IP 地址。仔细检查。

也许可以在您的服务器上尝试:

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

您可以尝试
docker logs app

我上次帮助的人的 Let’s Encrypt 电子邮件地址无效。看起来 Nginx 因某种原因未能启动。最常见的原因是证书已损坏。