tiredpixel/z.2014-05-28.sidekiq-spy

Unreachable host explodes

Closed this issue · 0 comments

If the host is unreachable, everything explodes. e.g.

$ sidekiq-spy -h example.com

does something like

/Users/mlnw/.rvm/gems/ruby-2.0.0-p247@sidekiq-spy/gems/redis-3.0.5/lib/redis/client.rb:276:in `rescue in establish_connection': Timed out connecting to Redis on example.com:6379 (Redis::CannotConnectError)
  from /Users/mlnw/.rvm/gems/ruby-2.0.0-p247@sidekiq-spy/gems/redis-3.0.5/lib/redis/client.rb:273:in `establish_connection'
  from /Users/mlnw/.rvm/gems/ruby-2.0.0-p247@sidekiq-spy/gems/redis-3.0.5/lib/redis/client.rb:69:in `connect'
  from /Users/mlnw/.rvm/gems/ruby-2.0.0-p247@sidekiq-spy/gems/redis-3.0.5/lib/redis/client.rb:292:in `ensure_connected'
  from /Users/mlnw/.rvm/gems/ruby-2.0.0-p247@sidekiq-spy/gems/redis-3.0.5/lib/redis/client.rb:179:in `block in process'
  from /Users/mlnw/.rvm/gems/ruby-2.0.0-p247@sidekiq-spy/gems/redis-3.0.5/lib/redis/client.rb:258:in `logging'
  from /Users/mlnw/.rvm/gems/ruby-2.0.0-p247@sidekiq-spy/gems/redis-3.0.5/lib/redis/client.rb:178:in `process'
  from /Users/mlnw/.rvm/gems/ruby-2.0.0-p247@sidekiq-spy/gems/redis-3.0.5/lib/redis/client.rb:84:in `call'
  from /Users/mlnw/.rvm/gems/ruby-2.0.0-p247@sidekiq-spy/gems/redis-3.0.5/lib/redis.rb:1295:in `block in smembers'
  from /Users/mlnw/.rvm/gems/ruby-2.0.0-p247@sidekiq-spy/gems/redis-3.0.5/lib/redis.rb:36:in `block in synchronize'
  from /Users/mlnw/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/monitor.rb:211:in `mon_synchronize'
  from /Users/mlnw/.rvm/gems/ruby-2.0.0-p247@sidekiq-spy/gems/redis-3.0.5/lib/redis.rb:36:in `synchronize'
  from /Users/mlnw/.rvm/gems/ruby-2.0.0-p247@sidekiq-spy/gems/redis-3.0.5/lib/redis.rb:1294:in `smembers'
  from /Users/mlnw/.rvm/gems/ruby-2.0.0-p247@sidekiq-spy/gems/sidekiq-2.15.1/lib/sidekiq/api.rb:399:in `block in each'
  from /Users/mlnw/.rvm/gems/ruby-2.0.0-p247@sidekiq-spy/gems/connection_pool-1.1.0/lib/connection_pool.rb:49:in `with'
  from /Users/mlnw/.rvm/gems/ruby-2.0.0-p247@sidekiq-spy/gems/sidekiq-2.15.1/lib/sidekiq.rb:67:in `redis'
  from /Users/mlnw/.rvm/gems/ruby-2.0.0-p247@sidekiq-spy/gems/sidekiq-2.15.1/lib/sidekiq/api.rb:398:in `each'
  from /Users/mlnw/Code/Public/sidekiq-spy/lib/sidekiq-spy/spy/workers.rb:20:in `refresh'
  from /Users/mlnw/Code/Public/sidekiq-spy/lib/sidekiq-spy/spy/workers.rb:14:in `initialize'
  from /Users/mlnw/Code/Public/sidekiq-spy/lib/sidekiq-spy/display/panels/workers.rb:19:in `new'
  from /Users/mlnw/Code/Public/sidekiq-spy/lib/sidekiq-spy/display/panels/workers.rb:19:in `structure'
  from /Users/mlnw/Code/Public/sidekiq-spy/lib/sidekiq-spy/display/panels/workers.rb:9:in `initialize'
  from /Users/mlnw/Code/Public/sidekiq-spy/lib/sidekiq-spy/display/screen.rb:27:in `new'
  from /Users/mlnw/Code/Public/sidekiq-spy/lib/sidekiq-spy/display/screen.rb:27:in `initialize'
  from /Users/mlnw/Code/Public/sidekiq-spy/lib/sidekiq-spy/app.rb:95:in `new'
  from /Users/mlnw/Code/Public/sidekiq-spy/lib/sidekiq-spy/app.rb:95:in `setup'
  from /Users/mlnw/Code/Public/sidekiq-spy/lib/sidekiq-spy/app.rb:31:in `start'
  from ./bin/sidekiq-spy:99:in `<main>'

Instead, handle this in a friendly manner like top does.