From 7c777eb83b7b474c6f697dafbbb20cad8a8801c2 Mon Sep 17 00:00:00 2001 From: Steven Allen Date: Thu, 6 Jun 2019 15:50:37 -0700 Subject: [PATCH] Merge pull request #6419 from ipfs/fix/6418 pin: fix concurrent map access race --- pin/pin.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pin/pin.go b/pin/pin.go index 8df21ee1c..48a16f84e 100644 --- a/pin/pin.go +++ b/pin/pin.go @@ -498,11 +498,17 @@ func LoadPinner(d ds.Datastore, dserv, internal ipld.DAGService) (Pinner, error) // DirectKeys returns a slice containing the directly pinned keys func (p *pinner) DirectKeys() []cid.Cid { + p.lock.RLock() + defer p.lock.RUnlock() + return p.directPin.Keys() } // RecursiveKeys returns a slice containing the recursively pinned keys func (p *pinner) RecursiveKeys() []cid.Cid { + p.lock.RLock() + defer p.lock.RUnlock() + return p.recursePin.Keys() }