[ARVADOS] updated: 1.3.0-2760-gbd375eeac
Git user
git at public.arvados.org
Tue Jul 21 17:24:01 UTC 2020
Summary of changes:
.../api/app/controllers/arvados/v1/containers_controller.rb | 2 +-
services/api/app/models/container.rb | 10 +++++-----
services/api/app/models/job.rb | 2 +-
services/api/config/initializers/time_zone.rb | 4 +++-
services/api/lib/audit_logs.rb | 1 +
services/api/test/unit/collection_test.rb | 2 +-
6 files changed, 12 insertions(+), 9 deletions(-)
via bd375eeacd72c7b10e9ceefe5b170df995d5c128 (commit)
via 7bc34405e0f1ff0d115d1dfc403a1ffd6922a51b (commit)
from 332bc65b9e713cf49a25f0159a324086a3400ae7 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
commit bd375eeacd72c7b10e9ceefe5b170df995d5c128
Author: Lucas Di Pentima <lucas at di-pentima.com.ar>
Date: Tue Jul 21 14:23:38 2020 -0300
16470: Testing Jenkins run (WIP)
Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <lucas at di-pentima.com.ar>
diff --git a/services/api/config/initializers/time_zone.rb b/services/api/config/initializers/time_zone.rb
index cedd8f3e4..f3c3652ae 100644
--- a/services/api/config/initializers/time_zone.rb
+++ b/services/api/config/initializers/time_zone.rb
@@ -11,5 +11,7 @@ ActiveRecord::Base.connection.class.set_callback :checkout, :after do
# before now()), but false in time zone -0100 (now() returns an
# earlier clock time, and its time zone is dropped when comparing to
# a "timestamp without time zone").
- raw_connection.sync_exec("SET TIME ZONE 'UTC'")
+ if Rails.env != 'test'
+ raw_connection.sync_exec("SET TIME ZONE 'UTC'")
+ end
end
diff --git a/services/api/lib/audit_logs.rb b/services/api/lib/audit_logs.rb
index 2b5e3b8ab..35e9a7600 100644
--- a/services/api/lib/audit_logs.rb
+++ b/services/api/lib/audit_logs.rb
@@ -44,6 +44,7 @@ module AuditLogs
end
def self.tidy_in_background
+ return
max_age = Rails.configuration.AuditLogs.MaxAge.to_i
max_batch = Rails.configuration.AuditLogs.MaxDeleteBatch
return if max_age <= 0 || max_batch <= 0
commit 7bc34405e0f1ff0d115d1dfc403a1ffd6922a51b
Author: Lucas Di Pentima <lucas at di-pentima.com.ar>
Date: Tue Jul 21 14:21:49 2020 -0300
16470: Adds an explicit reload before every pending with_lock call.
Previous versions of rails did an implicit reload when calling with_lock,
but from 5.2 calling with_lock with unpersisted changes will raise an
exception.
Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <lucas at di-pentima.com.ar>
diff --git a/services/api/app/controllers/arvados/v1/containers_controller.rb b/services/api/app/controllers/arvados/v1/containers_controller.rb
index 041f55947..b2324a571 100644
--- a/services/api/app/controllers/arvados/v1/containers_controller.rb
+++ b/services/api/app/controllers/arvados/v1/containers_controller.rb
@@ -29,7 +29,7 @@ class Arvados::V1::ContainersController < ApplicationController
end
def update
- @object.with_lock do
+ @object.reload.with_lock do
super
end
end
diff --git a/services/api/app/models/container.rb b/services/api/app/models/container.rb
index adfbf6042..16f8cd798 100644
--- a/services/api/app/models/container.rb
+++ b/services/api/app/models/container.rb
@@ -339,7 +339,7 @@ class Container < ArvadosModel
end
def lock
- self.with_lock do
+ self.reload.with_lock do
if self.state != Queued
raise LockFailedError.new("cannot lock when #{self.state}")
end
@@ -357,7 +357,7 @@ class Container < ArvadosModel
end
def unlock
- self.with_lock do
+ self.reload.with_lock do
if self.state != Locked
raise InvalidStateTransitionError.new("cannot unlock when #{self.state}")
end
@@ -654,7 +654,7 @@ class Container < ArvadosModel
# This container is finished so finalize any associated container requests
# that are associated with this container.
if saved_change_to_state? and self.final?
- # These get wiped out by with_lock (which reloads the record),
+ # These get wiped out (with_lock requires to explicitly reload the record),
# so record them now in case we need to schedule a retry.
prev_secret_mounts = secret_mounts_before_last_save
prev_runtime_token = runtime_token_before_last_save
@@ -665,7 +665,7 @@ class Container < ArvadosModel
# transaction finishes. This ensure that concurrent container
# requests that try to reuse this container are finalized (on
# Complete) or don't reuse it (on Cancelled).
- self.with_lock do
+ self.reload.with_lock do
act_as_system_user do
if self.state == Cancelled
retryable_requests = ContainerRequest.where("container_uuid = ? and priority > 0 and state = 'Committed' and container_count < container_count_max", uuid)
@@ -690,7 +690,7 @@ class Container < ArvadosModel
}
c = Container.create! c_attrs
retryable_requests.each do |cr|
- cr.with_lock do
+ cr.reload.with_lock do
leave_modified_by_user_alone do
# Use row locking because this increments container_count
cr.container_uuid = c.uuid
diff --git a/services/api/app/models/job.rb b/services/api/app/models/job.rb
index 37e5f455d..31179f066 100644
--- a/services/api/app/models/job.rb
+++ b/services/api/app/models/job.rb
@@ -136,7 +136,7 @@ class Job < ArvadosModel
end
def lock locked_by_uuid
- with_lock do
+ reload.with_lock do
unless self.state == Queued and self.is_locked_by_uuid.nil?
raise AlreadyLockedError
end
diff --git a/services/api/test/unit/collection_test.rb b/services/api/test/unit/collection_test.rb
index addea8306..dbfdae95a 100644
--- a/services/api/test/unit/collection_test.rb
+++ b/services/api/test/unit/collection_test.rb
@@ -515,7 +515,7 @@ class CollectionTest < ActiveSupport::TestCase
c2.description = 'foo collection'
c1.save!
assert_equal 1, c2.version
- # with_lock forces a reload, so this shouldn't produce an unique violation error
+ # with_lock requires a reload, so this shouldn't produce an unique violation error
c2.save!
assert_equal 3, c2.version
assert_equal 'foo collection', c2.description
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list