Date: 2016/2/3 Cate: Mac, rails, ruby Tags:  

Mac上で、rubyからredisにアクセスしたときに以下の様なログをはいてクラッシュしました。

redis-3.2.2/lib/redis/connection/ruby.rb:129: [BUG] rb_sys_fail_str(connect(2) for [fe80::1%lo0]:6379) - errno == 0
ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-darwin13.0]
-- Crash Report log information --------------------------------------------
   See Crash Report log file under the one of following:
     * ~/Library/Logs/CrashReporter
     * /Library/Logs/CrashReporter
     * ~/Library/Logs/DiagnosticReports
     * /Library/Logs/DiagnosticReports
   for more details.
...

調べてみると、ここで言われているように、Macの設定によってはIPv6のアドレスをとってきてしまってクラッシュしているようです。
今回はRailsでsidekiqを使っているときにこのバグに遭遇したのですが、config/initializers/sidekiq.rb

Sidekiq.configure_server do |config|
  config.redis = { :url => "redis://localhost:6379" }
end

と書いていたのを、

Sidekiq.configure_server do |config|
  config.redis = { :url => "redis://127.0.0.1:6379" }
end

localhostから127.0.0.1に変更したら治りました。

Leave a Reply