X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/96609221d1133eb1340c4ef5efb27303181c0b73..ddff0f5816f8100154c9ae0a95147b2061097da3:/services/api/lib/update_priority.rb diff --git a/services/api/lib/update_priority.rb b/services/api/lib/update_priority.rb index c688ac008b..6c17f1bd03 100644 --- a/services/api/lib/update_priority.rb +++ b/services/api/lib/update_priority.rb @@ -33,7 +33,7 @@ module UpdatePriority # priority==0 but should be >0: act_as_system_user do Container. - joins("JOIN container_requests ON container_requests.container_uuid=containers.uuid AND container_requests.state=#{Container.sanitize(ContainerRequest::Committed)} AND container_requests.priority>0"). + joins("JOIN container_requests ON container_requests.container_uuid=containers.uuid AND container_requests.state=#{ActiveRecord::Base.connection.quote(ContainerRequest::Committed)} AND container_requests.priority>0"). where('containers.state IN (?) AND containers.priority=0 AND container_requests.uuid IS NOT NULL', [Container::Queued, Container::Locked, Container::Running]). map(&:update_priority!) @@ -55,7 +55,12 @@ module UpdatePriority rescue => e Rails.logger.error "#{e.class}: #{e}\n#{e.backtrace.join("\n\t")}" ensure - ActiveRecord::Base.connection.close + # Rails 5.1+ makes test threads share a database connection, so we can't + # close a connection shared with other threads. + # https://github.com/rails/rails/commit/deba47799ff905f778e0c98a015789a1327d5087 + if Rails.env != "test" + ActiveRecord::Base.connection.close + end end end end