From davekm3t at gmail.com Thu Mar 13 17:14:42 2008 From: davekm3t at gmail.com (Dave Pascoe) Date: Thu, 13 Mar 2008 17:14:42 -0400 Subject: [Swiftiply-users] Mongrel 1.1.4 and Evented Mongrel Message-ID: <74df4ca00803131414x6953972dve60237590e30969@mail.gmail.com> The hot patch to Mongrel 1.0.1 (not surprisingly) for Evented Mongrel doesn't seem to work on Mongrel 1.1.4. Is there any thought or work going on to upgrade the gem to support Mongrel 1.1.4? -dave From wyhaines at gmail.com Thu Mar 13 17:18:02 2008 From: wyhaines at gmail.com (Kirk Haines) Date: Thu, 13 Mar 2008 15:18:02 -0600 Subject: [Swiftiply-users] Mongrel 1.1.4 and Evented Mongrel In-Reply-To: <74df4ca00803131414x6953972dve60237590e30969@mail.gmail.com> References: <74df4ca00803131414x6953972dve60237590e30969@mail.gmail.com> Message-ID: On Thu, Mar 13, 2008 at 3:14 PM, Dave Pascoe wrote: > The hot patch to Mongrel 1.0.1 (not surprisingly) for Evented Mongrel > doesn't seem to work on Mongrel 1.1.4. Is there any thought or work > going on to upgrade the gem to support Mongrel 1.1.4? I will take a look at it and get an update released. I'm a bit behind on my Mongrel work at the moment. Thanks, Kirk Haines From davekm3t at gmail.com Wed Mar 19 16:00:16 2008 From: davekm3t at gmail.com (Dave Pascoe) Date: Wed, 19 Mar 2008 16:00:16 -0400 Subject: [Swiftiply-users] Mongrel 1.1.4 and Evented Mongrel In-Reply-To: References: <74df4ca00803131414x6953972dve60237590e30969@mail.gmail.com> Message-ID: <74df4ca00803191300h1b1f827cu6a5d549ec513e884@mail.gmail.com> My original request was due to an issue we're having with Evented Mongrel dying. I originally suspected eventmachine but finally got the debug data I needed today. So, still interested in using an Evented Mongrel 1.1.4...but the near-term problem has been identified and patched around. The Mongrels were dying when the following requests were coming in (these particular requests are from some web proxy scanners in China): GET http://history.jangseong.go.kr/sibbs3/admin/board/prx.php?p=q1w2e3r4t5y6u7i8o9p0*a-b?hash=5DC4B7CE6B0B1718D85DFAC30050A1A3E4295494C4B3 Of course these shouldn't ever get passed to a backend Mongrel anyway, nor should any URI beginning with 'GET http'. So we just filtered this at the load balancer. The backtrace on the failing Mongrels are all as follows: /usr/lib64/ruby/gems/1.8/gems/swiftiply-0.6.1.1/src/swiftcore/evented_mongrel.rb:37:in `resolve': can't convert nil into String (TypeError) from /usr/lib64/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/configurator.rb:293:in `join' from /usr/lib64/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/configurator.rb:293:in `join' from /usr/lib64/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/configurator.rb:293:in `each' from /usr/lib64/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/configurator.rb:293:in `join' from /usr/lib64/ruby/gems/1.8/gems/swiftiply-0.6.1.1/bin/mongrel_rails:145:in `run' from /usr/lib64/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/command.rb:211:in `run' from /usr/lib64/ruby/gems/1.8/gems/swiftiply-0.6.1.1/bin/mongrel_rails:252 from /usr/bin/mongrel_rails:19:in `load' from /usr/bin/mongrel_rails:19 and the code block is: def receive_data data @linebuffer << data @nparsed = @parser.execute(@params, @linebuffer, @nparsed) unless @parser.finished? if @parser.finished? if @request_len.nil? @request_len = @params[::Mongrel::Const::CONTENT_LENGTH].to_i line 37 -----> script_name, path_info, handlers = ::Mongrel::HttpServer::Instance.classifier.resolve(@params[::Mongrel::Const::REQUEST_PATH]) if handlers @params[::Mongrel::Const::PATH_INFO] = path_info @params[::Mongrel::Const::SCRIPT_NAME] = script_name @params[::Mongrel::Const::REMOTE_ADDR] = @params[::Mongrel::Const::HTTP_X_FORWARDED_FOR] || ::Socket.unpack_sockaddr_in(get_peername)[1] @notifiers = handlers.select { |h| h.request_notify } end if @request_len > ::Mongrel::Const::MAX_BODY new_buffer = Tempfile.new(::Mongrel::Const::MONGREL_TMP_BASE) new_buffer.binmode -dave