Broken Camping (on Dreamhost)

2010-01-20 Thread Garret Buell
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@rubyforge.org
http://rubyforge.org/mailman/listinfo/camping-list


Re: Broken Camping (on Dreamhost)

2010-01-20 Thread Magnus Holm
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 terr...@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@rubyforge.org
 http://rubyforge.org/mailman/listinfo/camping-list

___
Camping-list mailing list
Camping-list@rubyforge.org
http://rubyforge.org/mailman/listinfo/camping-list