Hello all, I''m running Camping 1.9.300 on DreamHost. Everything has been working great for quite some time, then recently, visiting the Camping app gives a 500 Internal Server Error. It seems as if something at DreamHost was upgraded and now everything is broken. Even the basic example Camping apps do not work so I suspect there is some incompatibility with Camping and the current setup. I''m hoping someone can help me figure out what is wrong. Here is the relevant error log data: [Wed Jan 20 18:08:06 2010] [error] [client ***.***.***.***] /usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/request.rb:150:in `rewind'': Illegal seek (Errno::ESPIPE) [Wed Jan 20 18:08:06 2010] [error] [client ***.***.***.***] \tfrom /usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/request.rb:150:in `POST'' [Wed Jan 20 18:08:06 2010] [error] [client ***.***.***.***] \tfrom /usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/request.rb:160:in `params'' [Wed Jan 20 18:08:06 2010] [error] [client ***.***.***.***] \tfrom (eval):30:in `initialize'' [Wed Jan 20 18:08:06 2010] [error] [client ***.***.***.***] \tfrom (eval):50:in `new'' [Wed Jan 20 18:08:06 2010] [error] [client ***.***.***.***] \tfrom (eval):50:in `call'' [Wed Jan 20 18:08:06 2010] [error] [client ***.***.***.***] \tfrom dispatch.cgi:16 [Wed Jan 20 18:08:06 2010] [error] [client ***.***.***.***] \tfrom /usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/content_length.rb:13:in `call'' [Wed Jan 20 18:08:06 2010] [error] [client ***.***.***.***] \tfrom /usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/content_length.rb:13:in `call'' [Wed Jan 20 18:08:06 2010] [error] [client ***.***.***.***] \tfrom /usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/handler/cgi.rb:33:in `serve'' [Wed Jan 20 18:08:06 2010] [error] [client ***.***.***.***] \tfrom /usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/handler/cgi.rb:7:in `run'' [Wed Jan 20 18:08:06 2010] [error] [client ***.***.***.***] \tfrom dispatch.cgi:19 [Wed Jan 20 18:08:06 2010] [error] [client ***.***.***.***] Premature end of script headers: dispatch.cgi My dispatch.cgi worked previously and nothing has been modified but here it is: #!/usr/bin/ruby ENV[''GEM_PATH''] = ''/home/garret/.gems:/usr/lib/ruby/gems/1.8'' ENV[''GEM_HOME''] = ''/home/garret/.gems'' Dir.chdir ''/home/garret/admin.*****.com'' require ''admin'' app = Admin fixed = lambda do |env| r = env["REQUEST_URI"][0..(env["REQUEST_URI"].index("?")||0)-1] d = r.length - (env["PATH_INFO"]||''/'').length env["SCRIPT_NAME"] = r[0...d] env["PATH_INFO"] = r[d..-1] app.call(env) end Rack::Handler::CGI.run(fixed) The require ''admin'' app = Admin can be replaced with any of the sample apps I''ve found with the same effect. Help? Thanks, Garret Buell
That''s weird? First of all, could you update Rack to 1.1 and try with that version? If it''s still broken, I think this monkey-patch should do it: class Rack::Request def params self.GET.update(self.POST) rescue EOFError, Errno::ESPIPE => e self.GET end end // Magnus Holm On Thu, Jan 21, 2010 at 06:19, Garret Buell <terragb at gmail.com> wrote:> Hello all, > I''m running Camping 1.9.300 on DreamHost. Everything has been working > great for quite some time, then recently, visiting the Camping app > gives a 500 Internal Server Error. It seems as if something at > DreamHost was upgraded and now everything is broken. Even the basic > example Camping apps do not work so I suspect there is some > incompatibility with Camping and the current setup. I''m hoping someone > can help me figure out what is wrong. > > Here is the relevant error log data: > [Wed Jan 20 18:08:06 2010] [error] [client ***.***.***.***] > /usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/request.rb:150:in > `rewind'': Illegal seek (Errno::ESPIPE) > [Wed Jan 20 18:08:06 2010] [error] [client ***.***.***.***] \tfrom > /usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/request.rb:150:in > `POST'' > [Wed Jan 20 18:08:06 2010] [error] [client ***.***.***.***] \tfrom > /usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/request.rb:160:in > `params'' > [Wed Jan 20 18:08:06 2010] [error] [client ***.***.***.***] \tfrom > (eval):30:in `initialize'' > [Wed Jan 20 18:08:06 2010] [error] [client ***.***.***.***] \tfrom > (eval):50:in `new'' > [Wed Jan 20 18:08:06 2010] [error] [client ***.***.***.***] \tfrom > (eval):50:in `call'' > [Wed Jan 20 18:08:06 2010] [error] [client ***.***.***.***] \tfrom > dispatch.cgi:16 > [Wed Jan 20 18:08:06 2010] [error] [client ***.***.***.***] \tfrom > /usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/content_length.rb:13:in > `call'' > [Wed Jan 20 18:08:06 2010] [error] [client ***.***.***.***] \tfrom > /usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/content_length.rb:13:in > `call'' > [Wed Jan 20 18:08:06 2010] [error] [client ***.***.***.***] \tfrom > /usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/handler/cgi.rb:33:in > `serve'' > [Wed Jan 20 18:08:06 2010] [error] [client ***.***.***.***] \tfrom > /usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/handler/cgi.rb:7:in > `run'' > [Wed Jan 20 18:08:06 2010] [error] [client ***.***.***.***] \tfrom > dispatch.cgi:19 > [Wed Jan 20 18:08:06 2010] [error] [client ***.***.***.***] Premature > end of script headers: dispatch.cgi > > My dispatch.cgi worked previously and nothing has been modified but here it > is: > #!/usr/bin/ruby > > ENV[''GEM_PATH''] = ''/home/garret/.gems:/usr/lib/ruby/gems/1.8'' > ENV[''GEM_HOME''] = ''/home/garret/.gems'' > > Dir.chdir ''/home/garret/admin.*****.com'' > > require ''admin'' > app = Admin > > fixed = lambda do |env| > r = env["REQUEST_URI"][0..(env["REQUEST_URI"].index("?")||0)-1] > d = r.length - (env["PATH_INFO"]||''/'').length > env["SCRIPT_NAME"] = r[0...d] > env["PATH_INFO"] = r[d..-1] > app.call(env) > end > > Rack::Handler::CGI.run(fixed) > > > The > require ''admin'' > app = Admin > > can be replaced with any of the sample apps I''ve found with the same > effect. > > Help? > > Thanks, > Garret Buell > _______________________________________________ > Camping-list mailing list > Camping-list at rubyforge.org > http://rubyforge.org/mailman/listinfo/camping-list >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/camping-list/attachments/20100121/3192bef0/attachment.html>
Thanks Magnus! Updating Rack to 1.1 worked. No idea what broke it in the first place though since it definitely wasn''t running Rack 1.1 before. Also, that patch looks a lot like a patch I saw for Sinatra to address a similar problem so I assume it would also work. -Garret On Wed, Jan 20, 2010 at 10:12 PM, Magnus Holm <judofyr at gmail.com> wrote:> That''s weird? > First of all, could you update Rack to 1.1 and try with that version? > If it''s still broken, I think this monkey-patch should do it: > class Rack::Request > ??def params > ????self.GET.update(self.POST) > ??rescue EOFError, Errno::ESPIPE?=> e > ?? ?self.GET > ??end > end > // Magnus Holm > > > On Thu, Jan 21, 2010 at 06:19, Garret Buell <terragb at gmail.com> wrote: >> >> Hello all, >> I''m running Camping 1.9.300 on DreamHost. Everything has been working >> great for quite some time, then recently, visiting the Camping app >> gives a 500 Internal Server Error. It seems as if something at >> DreamHost was upgraded and now everything is broken. Even the basic >> example Camping apps do not work so I suspect there is some >> incompatibility with Camping and the current setup. I''m hoping someone >> can help me figure out what is wrong. >> >> Here is the relevant error log data: >> [Wed Jan 20 18:08:06 2010] [error] [client ***.***.***.***] >> /usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/request.rb:150:in >> `rewind'': Illegal seek (Errno::ESPIPE) >> [Wed Jan 20 18:08:06 2010] [error] [client ***.***.***.***] \tfrom >> /usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/request.rb:150:in >> `POST'' >> [Wed Jan 20 18:08:06 2010] [error] [client ***.***.***.***] \tfrom >> /usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/request.rb:160:in >> `params'' >> [Wed Jan 20 18:08:06 2010] [error] [client ***.***.***.***] \tfrom >> (eval):30:in `initialize'' >> [Wed Jan 20 18:08:06 2010] [error] [client ***.***.***.***] \tfrom >> (eval):50:in `new'' >> [Wed Jan 20 18:08:06 2010] [error] [client ***.***.***.***] \tfrom >> (eval):50:in `call'' >> [Wed Jan 20 18:08:06 2010] [error] [client ***.***.***.***] \tfrom >> dispatch.cgi:16 >> [Wed Jan 20 18:08:06 2010] [error] [client ***.***.***.***] \tfrom >> /usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/content_length.rb:13:in >> `call'' >> [Wed Jan 20 18:08:06 2010] [error] [client ***.***.***.***] \tfrom >> /usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/content_length.rb:13:in >> `call'' >> [Wed Jan 20 18:08:06 2010] [error] [client ***.***.***.***] \tfrom >> /usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/handler/cgi.rb:33:in >> `serve'' >> [Wed Jan 20 18:08:06 2010] [error] [client ***.***.***.***] \tfrom >> /usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/handler/cgi.rb:7:in >> `run'' >> [Wed Jan 20 18:08:06 2010] [error] [client ***.***.***.***] \tfrom >> dispatch.cgi:19 >> [Wed Jan 20 18:08:06 2010] [error] [client ***.***.***.***] Premature >> end of script headers: dispatch.cgi >> >> My dispatch.cgi worked previously and nothing has been modified but here >> it is: >> #!/usr/bin/ruby >> >> ENV[''GEM_PATH''] = ''/home/garret/.gems:/usr/lib/ruby/gems/1.8'' >> ENV[''GEM_HOME''] = ''/home/garret/.gems'' >> >> Dir.chdir ''/home/garret/admin.*****.com'' >> >> require ''admin'' >> app = Admin >> >> fixed = lambda do |env| >> ?r = env["REQUEST_URI"][0..(env["REQUEST_URI"].index("?")||0)-1] >> ?d = r.length - (env["PATH_INFO"]||''/'').length >> ?env["SCRIPT_NAME"] = r[0...d] >> ?env["PATH_INFO"] = r[d..-1] >> ?app.call(env) >> end >> >> Rack::Handler::CGI.run(fixed) >> >> >> The >> require ''admin'' >> app = Admin >> >> can be replaced with any of the sample apps I''ve found with the same >> effect. >> >> Help? >> >> Thanks, >> Garret Buell >> _______________________________________________ >> Camping-list mailing list >> Camping-list at rubyforge.org >> http://rubyforge.org/mailman/listinfo/camping-list > > > _______________________________________________ > Camping-list mailing list > Camping-list at rubyforge.org > http://rubyforge.org/mailman/listinfo/camping-list >