[arvados] updated: 2.7.0-6549-g8a5db7b48c

git repository hosting git at public.arvados.org
Mon May 6 15:07:56 UTC 2024


Summary of changes:
 lib/controller/handler_test.go         | 20 ++++++++++++++++++++
 lib/controller/localdb/log_activity.go |  7 ++++++-
 lib/controller/trash.go                | 11 ++++++++++-
 3 files changed, 36 insertions(+), 2 deletions(-)

       via  8a5db7b48c1fb11423110490267fea17161f7674 (commit)
       via  5fb720b670c3bd986898d7597e700cb12d1647ae (commit)
      from  f049ebcb40b5509413f73840ead3ef8893f9331b (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 8a5db7b48c1fb11423110490267fea17161f7674
Author: Tom Clegg <tom at curii.com>
Date:   Mon May 6 11:07:47 2024 -0400

    21611: Fix test race by waiting for dblocks to be released.
    
    Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tom at curii.com>

diff --git a/lib/controller/handler_test.go b/lib/controller/handler_test.go
index afc7ec93bf..ff1d43da41 100644
--- a/lib/controller/handler_test.go
+++ b/lib/controller/handler_test.go
@@ -20,6 +20,7 @@ import (
 	"testing"
 	"time"
 
+	"git.arvados.org/arvados.git/lib/controller/dblock"
 	"git.arvados.org/arvados.git/lib/controller/rpc"
 	"git.arvados.org/arvados.git/sdk/go/arvados"
 	"git.arvados.org/arvados.git/sdk/go/arvadostest"
@@ -65,6 +66,25 @@ func (s *HandlerSuite) SetUpTest(c *check.C) {
 
 func (s *HandlerSuite) TearDownTest(c *check.C) {
 	s.cancel()
+
+	// Wait for dblocks to be released. Otherwise, a subsequent
+	// test might time out waiting to acquire them.
+	timeout := time.After(10 * time.Second)
+	for _, locker := range []*dblock.DBLocker{dblock.TrashSweep, dblock.ContainerLogSweep} {
+		ok := make(chan struct{})
+		go func() {
+			if locker.Lock(context.Background(), s.handler.dbConnector.GetDB) {
+				locker.Unlock()
+			}
+			close(ok)
+		}()
+		select {
+		case <-timeout:
+			c.Log("timed out waiting for dblocks")
+			c.Fail()
+		case <-ok:
+		}
+	}
 }
 
 func (s *HandlerSuite) TestConfigExport(c *check.C) {
diff --git a/lib/controller/trash.go b/lib/controller/trash.go
index d1a54b4238..662ea26751 100644
--- a/lib/controller/trash.go
+++ b/lib/controller/trash.go
@@ -25,7 +25,7 @@ func (h *Handler) periodicWorker(workerName string, interval time.Duration, lock
 		return
 	}
 	defer locker.Unlock()
-	for time.Sleep(interval); ctx.Err() == nil; time.Sleep(interval) {
+	for ctxSleep(ctx, interval); ctx.Err() == nil; ctxSleep(ctx, interval) {
 		if !locker.Check() {
 			// context canceled
 			return
@@ -85,3 +85,12 @@ DELETE FROM logs
 		return nil
 	})
 }
+
+// Sleep for the given duration, but return early if ctx cancels
+// before that.
+func ctxSleep(ctx context.Context, d time.Duration) {
+	select {
+	case <-ctx.Done():
+	case <-time.After(d):
+	}
+}

commit 5fb720b670c3bd986898d7597e700cb12d1647ae
Author: Tom Clegg <tom at curii.com>
Date:   Mon May 6 10:45:39 2024 -0400

    21611: Log "disabled by config" log message only once.
    
    Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tom at curii.com>

diff --git a/lib/controller/localdb/log_activity.go b/lib/controller/localdb/log_activity.go
index 9c9660aec4..9f9674e08b 100644
--- a/lib/controller/localdb/log_activity.go
+++ b/lib/controller/localdb/log_activity.go
@@ -13,10 +13,15 @@ import (
 	"git.arvados.org/arvados.git/sdk/go/ctxlog"
 )
 
+var loggedLogActivityDisabled = false
+
 func (conn *Conn) logActivity(ctx context.Context) {
 	p := conn.cluster.Users.ActivityLoggingPeriod.Duration()
 	if p < 1 {
-		ctxlog.FromContext(ctx).Debug("logActivity disabled by config")
+		if !loggedLogActivityDisabled {
+			ctxlog.FromContext(ctx).Debug("logActivity disabled by config")
+			loggedLogActivityDisabled = true
+		}
 		return
 	}
 	user, _, err := ctrlctx.CurrentAuth(ctx)

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list