Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAhmad Sherif <me@ahmadsherif.com>2016-08-01 17:55:50 +0300
committerAhmad Sherif <me@ahmadsherif.com>2016-08-01 23:10:04 +0300
commit0720b9ce0059feca284404e6fc1ede0cba542fe3 (patch)
treedb60fc44c3c3b9c29ee27a41570f75c40953e007 /lib/gitlab/request_profiler
parent0819461e84d2652d66be070cb758c42b3d8d6858 (diff)
Catch what warden might throw when profiling requests to re-throw it
Closes #20488
Diffstat (limited to 'lib/gitlab/request_profiler')
-rw-r--r--lib/gitlab/request_profiler/middleware.rb10
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/gitlab/request_profiler/middleware.rb b/lib/gitlab/request_profiler/middleware.rb
index 0c54f2dd71f..4e787dc0656 100644
--- a/lib/gitlab/request_profiler/middleware.rb
+++ b/lib/gitlab/request_profiler/middleware.rb
@@ -29,7 +29,9 @@ module Gitlab
def call_with_profiling(env)
ret = nil
result = RubyProf::Profile.profile do
- ret = @app.call(env)
+ ret = catch(:warden) do
+ @app.call(env)
+ end
end
printer = RubyProf::CallStackPrinter.new(result)
@@ -41,7 +43,11 @@ module Gitlab
printer.print(file)
end
- ret
+ if ret.is_a?(Array)
+ ret
+ else
+ throw(:warden, ret)
+ end
end
end
end