20240: Change locking mode to EXCLUSIVE.
[arvados.git] / services / api / app / controllers / arvados / v1 / containers_controller.rb
index 73701b92cea458caa6a9fe490a28b7e34b4c094a..b06d65a36c13bfda924fb40f6408bcfe8363d748 100644 (file)
@@ -31,7 +31,7 @@ class Arvados::V1::ContainersController < ApplicationController
   def update
     # Lock containers table to avoid deadlock in cascading priority update (see #20240)
     Container.transaction do
-      ActiveRecord::Base.connection.execute "LOCK TABLE containers IN SHARE ROW EXCLUSIVE MODE"
+      ActiveRecord::Base.connection.execute "LOCK TABLE containers IN EXCLUSIVE MODE"
       super
     end
   end
@@ -63,7 +63,7 @@ class Arvados::V1::ContainersController < ApplicationController
   def update_priority
     # Lock containers table to avoid deadlock in cascading priority update (see #20240)
     Container.transaction do
-      ActiveRecord::Base.connection.execute "LOCK TABLE containers IN SHARE ROW EXCLUSIVE MODE"
+      ActiveRecord::Base.connection.execute "LOCK TABLE containers IN EXCLUSIVE MODE"
       @object.reload(lock: true)
       @object.update_priority!
       show