]> git.openstreetmap.org Git - rails.git/commitdiff
Respond to timeouts with a server error code
authorAnton Khorev <tony29@yandex.ru>
Mon, 9 Sep 2024 16:13:29 +0000 (19:13 +0300)
committerAnton Khorev <tony29@yandex.ru>
Mon, 9 Sep 2024 16:13:29 +0000 (19:13 +0300)
app/controllers/application_controller.rb

index 8290a027eecce8270e3e1241de40980977ead5dd..fdc2ac4e8694191790ffadab11ae9bbe5e55dc54 100644 (file)
@@ -224,14 +224,17 @@ class ApplicationController < ActionController::Base
 
     if e.is_a?(Timeout::Error) ||
        (e.is_a?(ActiveRecord::StatementInvalid) && e.message.include?("execution expired"))
-      ActiveRecord::Base.connection.raw_connection.cancel
-      render :action => "timeout"
+      respond_to_timeout
     else
       raise
     end
   rescue Timeout::Error
+    respond_to_timeout
+  end
+
+  def respond_to_timeout
     ActiveRecord::Base.connection.raw_connection.cancel
-    render :action => "timeout"
+    render :action => "timeout", :status => :gateway_timeout
   end
 
   ##