diff --git a/common/commonspace/syncservice/streampool.go b/common/commonspace/syncservice/streampool.go index 7247f73d..c1bbb009 100644 --- a/common/commonspace/syncservice/streampool.go +++ b/common/commonspace/syncservice/streampool.go @@ -52,11 +52,13 @@ type streamPool struct { } func newStreamPool(messageHandler MessageHandler) StreamPool { - return &streamPool{ + s := &streamPool{ peerStreams: make(map[string]spacesyncproto.SpaceStream), messageHandler: messageHandler, wg: &sync.WaitGroup{}, } + s.lastUsage.Store(time.Now().Unix()) + return s } func (s *streamPool) LastUsage() time.Time { diff --git a/common/pkg/ocache/ocache.go b/common/pkg/ocache/ocache.go index 41555e42..5f7d5b14 100644 --- a/common/pkg/ocache/ocache.go +++ b/common/pkg/ocache/ocache.go @@ -356,7 +356,6 @@ func (c *oCache) GC() { c.mu.Unlock() return } - deadline := c.timeNow().Add(-c.ttl) var toClose []*entry for _, e := range c.data { if e.isClosing { @@ -366,7 +365,8 @@ func (c *oCache) GC() { if lug, ok := e.value.(ObjectLastUsage); ok { lu = lug.LastUsage() } - if !e.locked() && e.refCount <= 0 && lu.Before(deadline) { + deadline := lu.Add(c.ttl) + if !e.locked() && e.refCount <= 0 && c.timeNow().After(deadline) { e.isClosing = true e.close = make(chan struct{}) toClose = append(toClose, e) diff --git a/node/nodespace/rpchandler.go b/node/nodespace/rpchandler.go index f64f068b..baefafda 100644 --- a/node/nodespace/rpchandler.go +++ b/node/nodespace/rpchandler.go @@ -4,7 +4,6 @@ import ( "context" "github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/spacesyncproto" "github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/storage" - "github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/treegetter" ) type rpcHandler struct { @@ -17,7 +16,7 @@ func (r *rpcHandler) PushSpace(ctx context.Context, req *spacesyncproto.PushSpac err = spacesyncproto.ErrSpaceExists return } - if err != treegetter.ErrSpaceNotFound { + if err != storage.ErrSpaceStorageMissing { err = spacesyncproto.ErrUnexpected return }