3.1.0.betaへの2.9.0.beta14からのアップグレードに失敗しました

毎月アップグレードしており、常に最初にいくつかの開発システムでテストしてから本番環境に適用しています。

今月のサイクル中に、最初の開発システムでアップグレードが失敗しました。docker_manager は正常にアップグレードされましたが、Discourse のアップグレードは以下のエラーで失敗しました。

申し訳ありませんが、Discourse のアップグレード中にエラーが発生しました。以下のログを確認してください。

Discourse アプリケーションは完全にダウンしています(「おっと」エラー 500 ページが表示されています)。

画面に表示されたログの内容は以下のとおりです。

********************************************************
*** 少々お待ちください。次のステップには時間がかかる場合があります ***
********************************************************
ユニコーンを循環させて、メモリを解放します
ユニコーンを再起動します pid: 50
ユニコーンの再読み込みを待っています。
ユニコーンの再読み込みを待っています..
ユニコーンの再読み込みを待っています...
ユニコーンの再読み込みを待っています....
ユニコーンの再読み込みを待っています.....
ユニコーンの再読み込みを待っています......
ユニコーンの再読み込みを待っています.......
ユニコーンの再読み込みを待っています........
ユニコーンの再読み込みを待っています.........
ユニコーンの再読み込みを待っています..........
ユニコーンの再読み込みを待っています...........
メモリを解放するために 7 つのユニコーンワーカーを停止します
メモリを回収するためにジョブキューを停止します。マスター pid は 4069 です
$ cd /var/www/discourse && git fetch --tags --force && git reset --hard HEAD@{upstream}
From https://github.com/discourse/discourse
 t [tag update]            latest-release -> latest-release
 * [new tag]               v2.8.14        -> v2.8.14
 * [new tag]               v3.0.0         -> v3.0.0
HEAD is now at 666536cbd1 DEV: Prefer \A and \z over ^ and $ in regexes (#19936)
$ bundle install --deployment --jobs 4 --without test development
[DEPRECATED] `--deployment` フラグは、バンドラーの呼び出し間で記憶されることに依存しているため非推奨です。バンドラーは将来のバージョンではこれを記憶しなくなります。代わりに `bundle config set --local deployment 'true'` を使用し、このフラグの使用を中止してください。
[DEPRECATED] `--without` フラグは、バンドラーの呼び出し間で記憶されることに依存しているため非推奨です。バンドラーは将来のバージョンではこれを記憶しなくなります。代わりに `bundle config set --local without 'test development'` を使用し、このフラグの使用を中止してください。
Bundler 2.3.13 を実行していますが、ロックファイルは 2.4.1 で生成されました。Bundler 2.4.1 をインストールして、そのバージョンを使用して再起動します。
rubygems.org から gem メタデータを取得しています。
bundler 2.4.1 を取得しています
bundler 2.4.1 をインストールしています
[DEPRECATED] `--deployment` フラグは、バンドラーの呼び出し間で記憶されることに依存しているため非推奨です。バンドラーは将来のバージョンではこれを記憶しなくなります。代わりに `bundle config set --local deployment 'true'` を使用し、このフラグの使用を中止してください。
[DEPRECATED] `--without` フラグは、バンドラーの呼び出し間で記憶されることに依存しているため非推奨です。バンドラーは将来のバージョンではこれを記憶しなくなります。代わりに `bundle config set --local without 'test development'` を使用し、このフラグの使用を中止してください。
rubygems.org から gem メタデータを取得しています.........
https://github.com/rails/sprockets を取得しています
web-push-3.0.0 は ruby バージョン >= 3.0 を必要としますが、現在のバージョン 2.7.6 と互換性がありません
Docker Manager: アップグレードに失敗しました
#<RuntimeError: RuntimeError>
/var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:209:in `run'
/var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:93:in `upgrade'
/var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:19:in `block in <main>'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-7.0.3.1/lib/active_support/fork_tracker.rb:20:in `block in fork'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-7.0.3.1/lib/active_support/fork_tracker.rb:18:in `fork'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-7.0.3.1/lib/active_support/fork_tracker.rb:18:in `fork'
/var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:6:in `<main>'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-7.0.3.1/lib/rails/commands/runner/runner_command.rb:43:in `load'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-7.0.3.1/lib/rails/commands/runner/runner_command.rb:43:in `perform'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/thor-1.2.1/lib/thor/command.rb:27:in `run'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/thor-1.2.1/lib/thor/invocation.rb:127:in `invoke_command'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/thor-1.2.1/lib/thor.rb:392:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-7.0.3.1/lib/rails/command/base.rb:87:in `perform'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-7.0.3.1/lib/rails/command.rb:48:in `invoke'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-7.0.3.1/lib/rails/commands.rb:18:in `<main>'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.15.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.15.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
bin/rails:18:in `<main>'
最初に停止した 7 つのユニコーンワーカーを起動します

以前はアップグレードエラーが発生したことがなかったので、次に何をすべきか分かりません。本番環境でこのようなことが発生した場合、どうすればよいでしょうか?

「いいね!」 2

実行しているオペレーティングシステム(ディストリビューション)のバージョンを確認することをお勧めします。古いバージョンで、Ruby 3がインストールされていない可能性があり、それが問題の原因かもしれません。

編集:お待ちください、私が混乱しているかどうかはわかりません。本番環境では、すべてがDockerコンテナ内で実行され、すべてのコンポーネントが適切なバージョンでインストールされているはずです。何か別のセットアップを使用していますか?

「いいね!」 2

参考までに、開発ボックスはUbuntu 20.04 LTSです。本番環境は22.04 LTSだと思います。

しかし、OSにRubyをインストールしたことはありません。すべてDockerコンテナ内で自動的に行われると思います。

訂正:本番環境も20.04 LTSです。

「いいね!」 1

はい、すみません、混乱していたようです。コマンドラインからのアップグレードが必要なことは珍しくありません。試しましたか?

cd /var/discourse
git pull
./launcher rebuild app
「いいね!」 6

もしそれらが開発環境へのインストールであれば、本番環境のDockerインストールを代表するものではありません。あなたの開発環境には古いバージョンのRuby(2.7)が使用されていますが、Discourseは最近イメージを3.1に引き上げました。

ありがとうございます。アプリの再構築でうまくいったようです。本番環境にパッチを適用する前に、別の開発システムで試しています。

明確にしておくと、「開発」とは、単に本番環境と同じようなものを内部開発システム上で行うことを意味します。

「いいね!」 1

bash経由のアップグレードで解決しましたか?

「いいね!」 1

はい!開発システムと本番の両方で機能しました。ありがとうございます!

「いいね!」 3

これも私の本番環境で発生しています。
2.9.0.beta14 (2b9fa41a6e) から 3.1.0.beta1 へ

Fetching gem metadata from https://rubygems.org/.........
Fetching https://github.com/rails/sprockets
web-push-3.0.0 requires ruby version >= 3.0, which is incompatible with the
current version, 2.7.6
Docker Manager: FAILED TO UPGRADE
#<RuntimeError: RuntimeError>
/var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:209:in `run'
/var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:93:in `upgrade'
/var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:19:in `block in <main>'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-7.0.3.1/lib/active_support/fork_tracker.rb:20:in `block in fork'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-7.0.3.1/lib/active_support/fork_tracker.rb:18:in `fork'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-7.0.3.1/lib/active_support/fork_tracker.rb:18:in `fork'
/var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:6:in `<main>'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-7.0.3.1/lib/rails/commands/runner/runner_command.rb:43:in `load'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-7.0.3.1/lib/rails/commands/runner/runner_command.rb:43:in `perform'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/thor-1.2.1/lib/thor/command.rb:27:in `run'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/thor-1.2.1/lib/thor/invocation.rb:127:in `invoke_command'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/thor-1.2.1/lib/thor.rb:392:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-7.0.3.1/lib/rails/command/base.rb:87:in `perform'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-7.0.3.1/lib/rails/command.rb:48:in `invoke'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-7.0.3.1/lib/rails/commands.rb:18:in `<main>'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.15.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.15.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
bin/rails:18:in `<main>'
Spinning up 1 Unicorn worker(s) that were stopped initially

:point_up: で解決しました

cd /var/discourse
git pull
./launcher rebuild app

ありがとうございます

私も同じ問題を抱えています。アップグレードに失敗し、フォーラムが500エラーになりました。この問題が3日間も続いていることに正直驚いています。

とにかく、現在CLIで再構築を実行しており、それが機能することを願っています。もしそうでなければ、VMのスナップショットを先に取得しました。なぜなら、私の母親は愚かな人間を育てなかったからです。

こちらの投稿によると、Rubyが3.0にアップグレードされたことが原因で、Webアップグレードが完全に壊れているようです。残念ながら、ソフトウェアはまだユーザーに試させるため、ホストがHTTP 500エラーをどれだけ早く提供できるかを確認することになります。

編集:CLIの再構築は実際に機能しました。ふぅ!

関連エラー:

Fetching gem metadata from https://rubygems.org/.........
Fetching https://github.com/rails/sprockets
web-push-3.0.0 requires ruby version >= 3.0, which is incompatible with the
current version, 2.7.6
Docker Manager: FAILED TO UPGRADE
#<RuntimeError: RuntimeError>
/var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:209:in `run'
/var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:93:in `upgrade'
/var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:19:in `block in <main>'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-7.0.3.1/lib/active_support/fork_tracker.rb:20:in `block in fork'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-7.0.3.1/lib/active_support/fork_tracker.rb:18:in `fork'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-7.0.3.1/lib/active_support/fork_tracker.rb:18:in `fork'
/var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:6:in `<main>'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-7.0.3.1/lib/rails/commands/runner/runner_command.rb:43:in `load'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-7.0.3.1/lib/rails/commands/runner/runner_command.rb:43:in `perform'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/thor-1.2.1/lib/thor/command.rb:27:in `run'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/thor-1.2.1/lib/thor/invocation.rb:127:in `invoke_command'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/thor-1.2.1/lib/thor.rb:392:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-7.0.3.1/lib/rails/command/base.rb:87:in `perform'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-7.0.3.1/lib/rails/command.rb:48:in `invoke'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-7.0.3.1/lib/rails/commands.rb:18:in `<main>'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.15.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.15.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
bin/rails:18:in `<main>'
「いいね!」 2

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.