コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

Rails開発中にでfsevnetが増殖したときの応急処置

gemのバージョンがあげられないんです、とかそういうときの暫定対応。2日連続応急処置ネタ。

環境

$ ruby -v
ruby 2.3.4p301 (2017-03-30 revision 58214) [x86_64-darwin18]
$ bin/rails --version
Rails 5.0.2
    listen (3.0.8)
      rb-fsevent (~> 0.9, >= 0.9.4)
      rb-inotify (~> 0.9, >= 0.9.7)

症状

bin/rails s をするとfseventのエラーがログに流れ始め、やがてプロセスがkillされずにマシンがハングアップする。

プロセスが増えるだけで、メモリやCPUが跳ね上がらないのでアクティビティモニタなどからだとそんなに増えた風には見えない

おそらくの原因

下記のIssueにある通り

The listen gem breaks my laptop · Issue #26158 · rails/rails

listenが噛み合わず起きる模様

暫定処置

config/enviroments/development.rb とかにある

  # Use an evented file watcher to asynchronously detect changes in source code,
  # routes, locales, etc. This feature depends on the listen gem.
  config.file_watcher = ActiveSupport::EventedFileUpdateChecker

となっているので

  # Use an evented file watcher to asynchronously detect changes in source code,
  # routes, locales, etc. This feature depends on the listen gem.
  # config.file_watcher = ActiveSupport::EventedFileUpdateChecker

コメントアウトすると一旦は回避できる。