Rails
byebug

byebugでデバッグ中に「Terminating timed out worker」が出る問題の解決

問題

Byebugでブレークポイントを置いてデバッグしている時に、
「Terminating timed out worker」 というメッセージが出て
デバッグ状態が解除されてしまう。

原因

サーバーのPumaのWorkerがタイムアウトすることが原因。

解決

PumaのWorkerのタイムアウト時間を伸ばしてあげればよい。
(デフォルトでは60秒)
Pumaの設定ファイル(config/puma.rb)に以下の一行を追加する。

worker_timeout 500
config/puma.rb
workers Integer(ENV['WEB_CONCURRENCY'] || 2)
threads_count = Integer(ENV['RAILS_MAX_THREADS'] || 5)
threads threads_count, threads_count

preload_app!

rackup      DefaultRackup
port        ENV['PORT']     || 3000
environment ENV['RACK_ENV'] || 'development'

on_worker_boot do
  # Worker specific setup for Rails 4.1+
  # See: https://devcenter.heroku.com/articles/
  # deploying-rails-applications-with-the-puma-web-server#on-worker-boot
  ActiveRecord::Base.establish_connection
end

worker_timeout 500

参考