diff options
author | evanweaver <evanweaver@19e92222-5c0b-0410-8929-a290d50e31e9> | 2007-10-21 02:54:53 +0000 |
---|---|---|
committer | evanweaver <evanweaver@19e92222-5c0b-0410-8929-a290d50e31e9> | 2007-10-21 02:54:53 +0000 |
commit | c60ff81f1ed1efe7f03fc31cf4c566264f3e314a (patch) | |
tree | 223f30e9736aa466c6e020f15fe5fff06398a6d2 /lib/mongrel.rb | |
parent | 0320048974fb4b81c365f9cf47ecd24384eb3f35 (diff) | |
download | unicorn-c60ff81f1ed1efe7f03fc31cf4c566264f3e314a.tar.gz |
git-svn-id: svn+ssh://rubyforge.org/var/svn/mongrel/trunk@710 19e92222-5c0b-0410-8929-a290d50e31e9
Diffstat (limited to 'lib/mongrel.rb')
-rw-r--r-- | lib/mongrel.rb | 31 |
1 files changed, 19 insertions, 12 deletions
diff --git a/lib/mongrel.rb b/lib/mongrel.rb index 5b5de59..2e4a988 100644 --- a/lib/mongrel.rb +++ b/lib/mongrel.rb @@ -266,9 +266,9 @@ module Mongrel update_request_progress(remain, total) end - rescue Object - STDERR.puts "#{Time.now}: Error reading HTTP body: #$!" - STDERR.puts $!.backtrace.join("\n") + rescue Object => e + STDERR.puts "#{Time.now}: Error reading HTTP body: #{e.inspect}" + STDERR.puts e.backtrace.join("\n") # any errors means we should delete the file, including if the file is dumped @socket.close rescue nil @body.delete if @body.class == Tempfile @@ -657,16 +657,23 @@ module Mongrel end rescue EOFError,Errno::ECONNRESET,Errno::EPIPE,Errno::EINVAL,Errno::EBADF client.close rescue nil - rescue HttpParserError - STDERR.puts "#{Time.now}: HTTP parse error, malformed request (#{params[Const::HTTP_X_FORWARDED_FOR] || client.peeraddr.last}): #$!" + rescue HttpParserError => e + STDERR.puts "#{Time.now}: HTTP parse error, malformed request (#{params[Const::HTTP_X_FORWARDED_FOR] || client.peeraddr.last}): #{e.inspect}" STDERR.puts "#{Time.now}: REQUEST DATA: #{data.inspect}\n---\nPARAMS: #{params.inspect}\n---\n" rescue Errno::EMFILE reap_dead_workers('too many files') - rescue Object - STDERR.puts "#{Time.now}: Error: #$!" - STDERR.puts $!.backtrace.join("\n") + rescue Object => e + STDERR.puts "#{Time.now}: Read error: #{e.inspect}" + STDERR.puts e.backtrace.join("\n") ensure - client.close rescue nil + begin + client.close + rescue IOError + # Already closed + rescue Object => e + STDERR.puts "#{Time.now}: Client error: #{e.inspect}" + STDERR.puts e.backtrace.join("\n") + end request.body.delete if request and request.body.class == Tempfile end end @@ -763,9 +770,9 @@ module Mongrel rescue Errno::ECONNABORTED # client closed the socket even before accept client.close rescue nil - rescue Object => exc - STDERR.puts "** Unhandled exception #{exc.inspect}." - STDERR.puts $!.backtrace.join("\n") + rescue Object => e + STDERR.puts "#{Time.now}: Unhandled listen loop exception #{e.inspect}." + STDERR.puts e.backtrace.join("\n") end end graceful_shutdown |