[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