こんにちは。
Ruby on RailsでWebアプリケーションサービスの開発をしています。
Railsを使った開発中、byebugを使う機会は多いかと思います。
byebugを使用していてTerminating timed out worker: 0000
というメッセージでpumaがtimeoutしてしまうという症状に悩まされていました。
今回はbyebugでデバッグ中にタイムアウトしてしまう問題の解消法をご紹介します。
Terminating timed out worker: 0000でタイムアウトしてしまう問題
Terminating timed out worker: 0000
デバッグしたい箇所にbyebugを仕込み、ターミナルで止まってくれるのを確認。
パラメータは何が入ってるかなー、この変数の中身はなにかなーと動かしていると不意に以下のログとともにbyebugが終了してしまいます。
(byebug) [0000] ! Terminating timed out worker: 0000
[0000] - Worker 1 (pid: 1522) booted, phase: 0
byebug「はいタイムアウトーー! 終了ですーーー!」
たなか
アイドル握手会の剥がしスタッフ的に、終了を告げられて追い出されてしまいます。
もう一度処理を走らせて、また確認して、また剥がされて……なんとかしたいです。
Terminating timed out worker: 0000 解決方法
puma.rbをに worker_timeoutを設定する!
pumaは、Railsのアプリケーションサーバー。
Railsアプリの土台にあり、アプリを動かしてリクエストを処理してくれるやつです。
puma.rbにworker timeoutの設定を追記してやることで、タイムアウト時間を変更することができます。
worker_timeout 600
worker_timeout
のデフォルト設定は60秒らしいので、600秒(10分)に変更してみました。
worker timeout設定を追記後、タイムアウトに迫られる恐怖から解放されました! よかった!
Terminating timed out worker: 0000でタイムアウト問題 まとめ
ということで今回はTerminating timed out worker: 0000
でbyebugがタイムアウトしてしまう問題の解決方法についてご紹介しました。
pumaについて、単語としては知ってましたが、具体的に何やってるかよくわかってなかったので触れられてよかったです。
普段Railsで開発していますが、アプリケーションの土台というか、Railsがよしなにやっている部分とかの知識が乏しいので、そういったレイヤーの知識も徐々に身につけていきたいですね。
短いですが、今回はここまで。