From a2ab75ebbcdf0f2d7bad56fec8194d637f298234 Mon Sep 17 00:00:00 2001 From: Brandon Mitchell Date: Mon, 25 Dec 2023 16:46:39 -0500 Subject: [PATCH] Fix a data race on the IndexGet calls Signed-off-by: Brandon Mitchell --- internal/store/dir.go | 4 +++- internal/store/mem.go | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/internal/store/dir.go b/internal/store/dir.go index ccc79a7..71cf240 100644 --- a/internal/store/dir.go +++ b/internal/store/dir.go @@ -107,7 +107,9 @@ func (d *dir) RepoGet(repoStr string) (Repo, error) { // IndexGet returns the current top level index for a repo. func (dr *dirRepo) IndexGet() (types.Index, error) { - err := dr.repoLoad(false, false) + dr.mu.Lock() + defer dr.mu.Unlock() + err := dr.repoLoad(false, true) return dr.index, err } diff --git a/internal/store/mem.go b/internal/store/mem.go index a693880..9c4fc24 100644 --- a/internal/store/mem.go +++ b/internal/store/mem.go @@ -72,6 +72,8 @@ func (m *mem) RepoGet(repoStr string) (Repo, error) { // IndexGet returns the current top level index for a repo. func (mr *memRepo) IndexGet() (types.Index, error) { + mr.mu.Lock() + defer mr.mu.Unlock() return mr.index, nil }