From 21e5cda7e0366f7104287cfac748e0aec5cb7b8f Mon Sep 17 00:00:00 2001 From: Samir Patel Date: Wed, 26 May 2021 15:21:57 -0500 Subject: [PATCH] Add lock to node usage --- api.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/api.go b/api.go index 677d01559..d913ea4ae 100644 --- a/api.go +++ b/api.go @@ -969,6 +969,8 @@ func (api *API) requestUsageOfNodes() { if err != nil { api.server.logger.Infof("couldn't collect disk usage from %s: %s", node.URI, err) } + api.usageCache.muRead.Lock() + defer api.usageCache.muRead.Unlock() api.usageCache.data[node.ID] = nodeUsage[node.ID] } } @@ -978,7 +980,11 @@ func (api *API) calculateUsage() { api.usageCache.muWrite.Lock() defer api.usageCache.muWrite.Unlock() - if time.Since(api.usageCache.lastUpdated) > api.usageCache.refreshInterval { + api.usageCache.muRead.Lock() + lastUpdated := api.usageCache.lastUpdated + api.usageCache.muRead.Unlock() + + if time.Since(lastUpdated) > api.usageCache.refreshInterval { fmt.Printf("RefreshRate, expired: time: %v, current time: %v \n", api.usageCache.lastUpdated, time.Now()) indexDetails, nodeMetadataBytes, err := api.holder.Txf().IndexUsageDetails()