diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 94e3808bc1..f161a431ba 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -29,6 +29,7 @@ class ApplicationController < ActionController::Base end end + before_action :set_thread_variable before_action :rate_limit_crawlers before_action :check_readonly_mode before_action :handle_theme @@ -56,6 +57,10 @@ class ApplicationController < ActionController::Base layout :set_layout + def set_thread_variable + Thread.current["_in_request"] = true + end + def has_escaped_fragment? SiteSetting.enable_escaped_fragments? && params.key?("_escaped_fragment_") end diff --git a/lib/distributed_mutex.rb b/lib/distributed_mutex.rb index bc29d14951..b5b1ccc408 100644 --- a/lib/distributed_mutex.rb +++ b/lib/distributed_mutex.rb @@ -48,6 +48,7 @@ class DistributedMutex # NOTE wrapped in mutex to maintain its semantics def synchronize + Rails.logger.warn("DistributedMutex.synchronize called inside a request lifecycle") if Thread.current["_in_request"] result = nil @mutex.synchronize do