From 7d3775f7dcd87bb5c210e33ff099460074080749 Mon Sep 17 00:00:00 2001 From: Tom Clegg Date: Tue, 2 Mar 2021 09:55:16 -0500 Subject: [PATCH] 16745: Don't store nil in an atomic.Value (panic). Arvados-DCO-1.1-Signed-off-by: Tom Clegg --- services/keep-web/cache.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/services/keep-web/cache.go b/services/keep-web/cache.go index af143c77ed..ec48be6090 100644 --- a/services/keep-web/cache.go +++ b/services/keep-web/cache.go @@ -218,6 +218,7 @@ func (c *cache) GetSession(token string) (arvados.CustomFileSystem, error) { now := time.Now() ent, _ := c.sessions.Get(token) sess, _ := ent.(*cachedSession) + expired := false if sess == nil { c.metrics.sessionMisses.Inc() sess = &cachedSession{ @@ -226,13 +227,13 @@ func (c *cache) GetSession(token string) (arvados.CustomFileSystem, error) { c.sessions.Add(token, sess) } else if sess.expire.Before(now) { c.metrics.sessionMisses.Inc() - sess.fs.Store(nil) + expired = true } else { c.metrics.sessionHits.Inc() } go c.pruneSessions() fs, _ := sess.fs.Load().(arvados.CustomFileSystem) - if fs != nil { + if fs != nil && !expired { return fs, nil } ac, err := arvados.NewClientFromConfig(c.cluster) -- 2.30.2