web-dev-qa-db-ja.com

Rails 6 APIのみのプロジェクトがElastic Beanstalkでプロジェクトを実行しているときにPumaがメッセージ「ワーカーの早期終了」で立ち往生

Rails 6 APIのみのアプリケーションをAWS Elastic Beanstalkで実行できません。そのアプリケーションのデプロイ後、pumaが「ワーカーの早期終了」というメッセージで止まります。私はしませんプロジェクトのカスタム構成や設定があります。環境を作成し、アーカイブされたZipファイルをアップロードするだけです。

コマンドpkill -9 -f pumaでプーマプロセスを強制終了した後、私のプーマ。ログファイルは次のようになります。

=== puma startup: 2020-01-22 13:17:45 +0000 ===
=== puma startup: 2020-01-22 13:17:45 +0000 ===
[28858] Early termination of worker
[28856] Early termination of worker
[28862] Early termination of worker
[28865] Early termination of worker
[28869] Early termination of worker

私はそのエラーを検索し、解決するものは何も見つかりませんでした。

  • Rubyバージョン:2.6.5
  • Pumaバージョン4.3.1
  • Railsバージョン:6.0.2.1

Ruby 2.6 AWSの64ビットAmazon Linux/2.11.2で実行されている2.6でPumaを使用しています。

6
yigit

同じエラーが発生しました。それはプーマの別のパッチです。

私はエラスティックビーンズトークからこのスタックを使用していました

Ruby 2.6 AL2 version 3.0.1
64bit Amazon Linux 2 v3.0.1 running Ruby 2.6
Ruby 2.6.6-p146
RubyGems 3.1.2
Puma 4.3.3
...

私のプロジェクトのGemfileは、このようにpumaをインクルードしました。

gem 'puma', '~> 4.3.3'

私のプロジェクトは新しいプロジェクトのボイラープレートであり、新しいパッチバージョンである現在のプーマ4.3.5がリリースされるまで、「古い」プロジェクトは問題なく機能していました。

解決策は、Gemfile内のgemのバージョンを次のように修正することです。

gem 'puma', '= 4.3.3'

学んだ教訓は、常に環境を展開ツールの環境と一致させることです。最新のソリューションスタックバージョンを追跡します ここ

1
Vic

プロジェクトの構造について話すのを忘れました。 app /フォルダーの下にoverridesというディレクトリがあります。

最後に、app/overridesフォルダーが原因でピューマクラッシュが発生することがわかりました: Zeitwerkのフォルダーを無視する方法Rails 6?

App/overridesフォルダーを無視してenvironment.rbファイルを変更した後、プロジェクトがスムーズに動作し始めました。

0
yigit