【byebug】Terminating timed out workerでタイムアウトしてしまう問題の解消法【puma】

ruby-on-rails

こんにちは。たなか(@tanaka_ricecake)です。

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でタイムアウト問題 まとめ

ruby-on-rails

ということで今回はTerminating timed out worker: 0000でbyebugがタイムアウトしてしまう問題の解決方法についてご紹介しました。

pumaについて、単語としては知ってましたが、具体的に何やってるかよくわかってなかったので触れられてよかったです。

普段Railsで開発していますが、アプリケーションの土台というか、Railsがよしなにやっている部分とかの知識が乏しいので、そういったレイヤーの知識も徐々に身につけていきたいですね。

短いですが、今回はここまで。

参考サイト

コメントを残す

メールアドレスが公開されることはありません。