diff --git a/commonspace/space.go b/commonspace/space.go index 9a22f453..70bf6e0c 100644 --- a/commonspace/space.go +++ b/commonspace/space.go @@ -337,11 +337,13 @@ func (s *space) BuildTree(ctx context.Context, id string, opts BuildTreeOpts) (t PeerGetter: s.peerManager, BuildObjectTree: treeBuilder, } - if t, err = synctree.BuildSyncTreeOrGetRemote(ctx, id, deps); err != nil { - return nil, err - } s.treesUsed.Add(1) log.Debug("incrementing counter", zap.String("id", id), zap.Int32("trees", s.treesUsed.Load()), zap.String("spaceId", s.id)) + if t, err = synctree.BuildSyncTreeOrGetRemote(ctx, id, deps); err != nil { + s.treesUsed.Add(-1) + log.Debug("decrementing counter, load failed", zap.String("id", id), zap.Int32("trees", s.treesUsed.Load()), zap.String("spaceId", s.id), zap.Error(err)) + return nil, err + } return } diff --git a/net/peer/peer.go b/net/peer/peer.go index 99304ebe..5bb8022a 100644 --- a/net/peer/peer.go +++ b/net/peer/peer.go @@ -63,14 +63,14 @@ func (p *peer) NewStream(ctx context.Context, rpc string, enc drpc.Encoding) (dr } func (p *peer) Read(b []byte) (n int, err error) { - if n, err = p.sc.Read(b); err != nil { + if n, err = p.sc.Read(b); err == nil { p.UpdateLastUsage() } return } func (p *peer) Write(b []byte) (n int, err error) { - if n, err = p.sc.Write(b); err != nil { + if n, err = p.sc.Write(b); err == nil { p.UpdateLastUsage() } return