Merge branch '12533-row-lock-contention'
[arvados.git] / services / api / lib / refresh_permission_view.rb
index 4d3df7d4dcb4af8239154a4ceb15ab1b66e58d53..4ee45ab088af1faea093a3de5af033b68955002a 100644 (file)
@@ -5,5 +5,8 @@
 PERMISSION_VIEW = "materialized_permission_view"
 
 def refresh_permission_view
-  ActiveRecord::Base.connection.exec_query("REFRESH MATERIALIZED VIEW #{PERMISSION_VIEW}")
+  ActiveRecord::Base.transaction do
+    ActiveRecord::Base.connection.execute("LOCK TABLE permission_refresh_lock")
+    ActiveRecord::Base.connection.execute("REFRESH MATERIALIZED VIEW #{PERMISSION_VIEW}")
+  end
 end