1
0
Fork 0
mirror of https://github.com/puma/puma.git synced 2022-11-09 13:48:40 -05:00

Rewrite contextual error backtrace to use Puma::Events#unknown_error instead

This commit is contained in:
Jeffrey 'jf' Lim 2016-04-13 01:42:22 +08:00
parent cbb793d620
commit d76e612c21
2 changed files with 12 additions and 7 deletions

View file

@ -106,15 +106,21 @@ module Puma
end
# An unknown error has occurred.
# +server+ is the Server object, +error+ an exception object, and
# +kind+ some additional info.
# +server+ is the Server object, +error+ an exception object,
# +kind+ some additional info, and +env+ the request.
#
def unknown_error(server, error, kind="Unknown")
def unknown_error(server, error, kind="Unknown", env=nil)
if error.respond_to? :render
error.render "#{Time.now}: #{kind} error", @stderr
else
@stderr.puts "#{Time.now}: #{kind} error: #{error.inspect}"
@stderr.puts error.backtrace.join("\n")
if env
string_block = [ "#{Time.now}: #{kind} error handling request { #{env['REQUEST_METHOD']} #{env['PATH_INFO']} }" ]
string_block << error.inspect
else
string_block = [ "#{Time.now}: #{kind} error: #{error.inspect}" ]
end
string_block << error.backtrace
@stderr.puts string_block.join("\n")
end
end

View file

@ -588,8 +588,7 @@ module Puma
res_body = ["Request was internally terminated early\n"]
rescue StandardError => e
STDERR.puts "#{Time.now}: error handling request: { #{ env['REQUEST_METHOD'] } #{ env['PATH_INFO'] } }:"
@events.unknown_error self, e, "Rack app"
@events.unknown_error self, e, "Rack app", env
status, headers, res_body = lowlevel_error(e, env)
end