summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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