summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAhmad Sherif <me@ahmadsherif.com>2016-08-01 16:55:50 +0200
committerAhmad Sherif <me@ahmadsherif.com>2016-08-01 22:10:04 +0200
commit0720b9ce0059feca284404e6fc1ede0cba542fe3 (patch)
treedb60fc44c3c3b9c29ee27a41570f75c40953e007
parent0819461e84d2652d66be070cb758c42b3d8d6858 (diff)
downloadgitlab-ce-fix/request-profiler-error-when-unauthenticated.tar.gz
Catch what warden might throw when profiling requests to re-throw itfix/request-profiler-error-when-unauthenticated
Closes #20488
-rw-r--r--CHANGELOG1
-rw-r--r--lib/gitlab/request_profiler/middleware.rb10
2 files changed, 9 insertions, 2 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 3b61e52b2fc..0cff6857c2c 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -44,6 +44,7 @@ v 8.11.0 (unreleased)
- Reduce number of queries made for merge_requests/:id/diffs
- Sensible state specific default sort order for issues and merge requests !5453 (tomb0y)
- Fix RequestProfiler::Middleware error when code is reloaded in development
+ - Catch what warden might throw when profiling requests to re-throw it
v 8.10.3 (unreleased)
- Fix importer for GitHub Pull Requests when a branch was removed
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