postrank-labs / goliath

Goliath is a non-blocking Ruby web server framework

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Server crash on em-http-request exception

theflow opened this issue · comments

Hi,

I'm running into an issue with em-http-request (igrigorik/em-http-request#204) that crashes goliath completely. I worked around the problem now, but it shouldn't crash the goliath server. Here's the backtrace:

/opt/boxen/rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/em-http-request-1.0.3/lib/em-http/decoders.rb:131:in `read': undefined method `[]' for nil:NilClass (NoMethodError)
  from /opt/boxen/rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/em-http-request-1.0.3/lib/em-http/decoders.rb:106:in `readline'
  from /opt/boxen/rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/em-http-request-1.0.3/lib/em-http/decoders.rb:106:in `decompress'
  from /opt/boxen/rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/em-http-request-1.0.3/lib/em-http/decoders.rb:39:in `<<'
  from /opt/boxen/rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/em-http-request-1.0.3/lib/em-http/client.rb:202:in `on_body_data'
  from /opt/boxen/rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/em-http-request-1.0.3/lib/em-http/http_connection.rb:119:in `block in post_init'
  from /opt/boxen/rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/em-http-request-1.0.3/lib/em-http/http_connection.rb:141:in `call'
  from /opt/boxen/rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/em-http-request-1.0.3/lib/em-http/http_connection.rb:141:in `<<'
  from /opt/boxen/rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/em-http-request-1.0.3/lib/em-http/http_connection.rb:141:in `receive_data'
  from /opt/boxen/rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/em-http-request-1.0.3/lib/em-http/http_connection.rb:23:in `receive_data'
  from /opt/boxen/rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/eventmachine-1.0.3/lib/eventmachine.rb:187:in `run_machine'
  from /opt/boxen/rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/eventmachine-1.0.3/lib/eventmachine.rb:187:in `run'
  from /opt/boxen/rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/em-synchrony-1.0.3/lib/em-synchrony.rb:38:in `synchrony'
  from /opt/boxen/rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/goliath-1.0.2/lib/goliath/server.rb:73:in `start'
  from /opt/boxen/rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/goliath-1.0.2/lib/goliath/runner.rb:297:in `run_server'
  from /opt/boxen/rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/goliath-1.0.2/lib/goliath/runner.rb:221:in `run'
  from /opt/boxen/rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/goliath-1.0.2/lib/goliath/application.rb:111:in `run!'
  from /opt/boxen/rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/goliath-1.0.2/lib/goliath/application.rb:133:in `block in <module:Goliath>'

Can you post an example / gist of your code?