From e1867619683b5da14aabcd512927d72b47d14599 Mon Sep 17 00:00:00 2001 From: mcrakhman Date: Thu, 11 May 2023 18:31:59 +0200 Subject: [PATCH] Fix ctx and change add method name in storage --- commonspace/object/tree/objecttree/objecttree.go | 4 ++-- .../object/tree/objecttree/objecttree_test.go | 10 +++++----- .../object/tree/synctree/syncprotocol_test.go | 8 ++++---- commonspace/object/tree/treestorage/inmemory.go | 2 +- .../treestorage/mock_treestorage/mock_treestorage.go | 12 ++++++------ commonspace/object/tree/treestorage/treestorage.go | 2 +- commonspace/space.go | 3 +++ 7 files changed, 22 insertions(+), 19 deletions(-) diff --git a/commonspace/object/tree/objecttree/objecttree.go b/commonspace/object/tree/objecttree/objecttree.go index 2e6b7b3a..ef909833 100644 --- a/commonspace/object/tree/objecttree/objecttree.go +++ b/commonspace/object/tree/objecttree/objecttree.go @@ -199,7 +199,7 @@ func (ot *objectTree) AddContent(ctx context.Context, content SignableChangeCont panic(err) } - err = ot.treeStorage.AddRawChangesSetHead([]*treechangeproto.RawTreeChangeWithId{rawChange}, []string{objChange.Id}) + err = ot.treeStorage.AddRawChangesSetHeads([]*treechangeproto.RawTreeChangeWithId{rawChange}, []string{objChange.Id}) if err != nil { return } @@ -296,7 +296,7 @@ func (ot *objectTree) AddRawChanges(ctx context.Context, changesPayload RawChang addResult.Mode = Rebuild } - err = ot.treeStorage.AddRawChangesSetHead(addResult.Added, addResult.Heads) + err = ot.treeStorage.AddRawChangesSetHeads(addResult.Added, addResult.Heads) if err != nil { // rolling back all changes made to inmemory state ot.rebuildFromStorage(nil, nil) diff --git a/commonspace/object/tree/objecttree/objecttree_test.go b/commonspace/object/tree/objecttree/objecttree_test.go index 3b061203..26cdb202 100644 --- a/commonspace/object/tree/objecttree/objecttree_test.go +++ b/commonspace/object/tree/objecttree/objecttree_test.go @@ -65,7 +65,7 @@ func prepareContext( treeStorage := changeCreator.CreateNewTreeStorage("0", aclList.Head().Id) if additionalChanges != nil { payload := additionalChanges(changeCreator) - err := treeStorage.AddRawChangesSetHead(payload.RawChanges, payload.NewHeads) + err := treeStorage.AddRawChangesSetHeads(payload.RawChanges, payload.NewHeads) require.NoError(t, err) } objTree, err := objTreeBuilder(treeStorage, aclList) @@ -503,7 +503,7 @@ func TestObjectTree(t *testing.T) { changeCreator.CreateRaw("5", aclList.Head().Id, "1", false, "1"), changeCreator.CreateRaw("6", aclList.Head().Id, "1", true, "3", "4", "5"), } - store.AddRawChangesSetHead(storageChanges, []string{"1"}) + store.AddRawChangesSetHeads(storageChanges, []string{"1"}) // updating with subset of those changes to see that everything will still work payload = RawChangesPayload{ @@ -748,7 +748,7 @@ func TestObjectTree(t *testing.T) { changeCreator.CreateRaw("5", aclList.Head().Id, "0", false, "1"), changeCreator.CreateRaw("6", aclList.Head().Id, "0", false, "3", "4", "5"), } - deps.treeStorage.AddRawChangesSetHead(rawChanges, []string{"6"}) + deps.treeStorage.AddRawChangesSetHeads(rawChanges, []string{"6"}) hTree, err := buildHistoryTree(deps, HistoryTreeParams{ BeforeId: "6", IncludeBeforeId: false, @@ -780,7 +780,7 @@ func TestObjectTree(t *testing.T) { changeCreator.CreateRaw("5", aclList.Head().Id, "1", true, "3", "4"), changeCreator.CreateRaw("6", aclList.Head().Id, "5", false, "5"), } - deps.treeStorage.AddRawChangesSetHead(rawChanges, []string{"6"}) + deps.treeStorage.AddRawChangesSetHeads(rawChanges, []string{"6"}) hTree, err := buildHistoryTree(deps, HistoryTreeParams{ BuildFullTree: true, }) @@ -810,7 +810,7 @@ func TestObjectTree(t *testing.T) { changeCreator.CreateRaw("5", aclList.Head().Id, "0", false, "1"), changeCreator.CreateRaw("6", aclList.Head().Id, "0", false, "3", "4", "5"), } - deps.treeStorage.AddRawChangesSetHead(rawChanges, []string{"6"}) + deps.treeStorage.AddRawChangesSetHeads(rawChanges, []string{"6"}) hTree, err := buildHistoryTree(deps, HistoryTreeParams{ BeforeId: "6", IncludeBeforeId: true, diff --git a/commonspace/object/tree/synctree/syncprotocol_test.go b/commonspace/object/tree/synctree/syncprotocol_test.go index e3c3df4e..a23554c6 100644 --- a/commonspace/object/tree/synctree/syncprotocol_test.go +++ b/commonspace/object/tree/synctree/syncprotocol_test.go @@ -112,7 +112,7 @@ func testTreeMerge(t *testing.T, levels, perLevel int, hasData bool, isSnapshot } // generating initial tree initialRes := genChanges(changeCreator, params) - err = storage.AddRawChangesSetHead(initialRes.changes, initialRes.heads) + err = storage.AddRawChangesSetHeads(initialRes.changes, initialRes.heads) require.NoError(t, err) deps := fixtureDeps{ aclList: aclList, @@ -264,7 +264,7 @@ func testTreeStorageHasExtra(t *testing.T, levels, perLevel int, hasData bool, i // adding some changes to store, but without updating heads store := fx.handlers["peer1"].tree().Storage().(*treestorage.InMemoryTreeStorage) oldHeads, _ := store.Heads() - store.AddRawChangesSetHead(initialRes.changes, oldHeads) + store.AddRawChangesSetHeads(initialRes.changes, oldHeads) // sending those changes to other peer fx.handlers["peer2"].sendRawChanges(context.Background(), objecttree.RawChangesPayload{ @@ -333,8 +333,8 @@ func testTreeStorageHasExtraThreeParts(t *testing.T, levels, perLevel int, hasDa require.True(t, slice.UnsortedEquals(res.Heads, firstPart.heads)) store := fx.handlers["peer1"].tree().Storage().(*treestorage.InMemoryTreeStorage) oldHeads, _ := store.Heads() - store.AddRawChangesSetHead(secondPart.changes, oldHeads) - store.AddRawChangesSetHead(thirdPart.changes, oldHeads) + store.AddRawChangesSetHeads(secondPart.changes, oldHeads) + store.AddRawChangesSetHeads(thirdPart.changes, oldHeads) var peer2Initial []*treechangeproto.RawTreeChangeWithId peer2Initial = append(peer2Initial, firstPart.changes...) diff --git a/commonspace/object/tree/treestorage/inmemory.go b/commonspace/object/tree/treestorage/inmemory.go index 292fd076..a3f3aaa3 100644 --- a/commonspace/object/tree/treestorage/inmemory.go +++ b/commonspace/object/tree/treestorage/inmemory.go @@ -22,7 +22,7 @@ func (t *InMemoryTreeStorage) SetReturnErrorOnAdd(err error) { t.addErr = err } -func (t *InMemoryTreeStorage) AddRawChangesSetHead(changes []*treechangeproto.RawTreeChangeWithId, heads []string) error { +func (t *InMemoryTreeStorage) AddRawChangesSetHeads(changes []*treechangeproto.RawTreeChangeWithId, heads []string) error { t.RLock() defer t.RUnlock() if t.addErr != nil { diff --git a/commonspace/object/tree/treestorage/mock_treestorage/mock_treestorage.go b/commonspace/object/tree/treestorage/mock_treestorage/mock_treestorage.go index c2d95c71..be338599 100644 --- a/commonspace/object/tree/treestorage/mock_treestorage/mock_treestorage.go +++ b/commonspace/object/tree/treestorage/mock_treestorage/mock_treestorage.go @@ -49,18 +49,18 @@ func (mr *MockTreeStorageMockRecorder) AddRawChange(arg0 interface{}) *gomock.Ca return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddRawChange", reflect.TypeOf((*MockTreeStorage)(nil).AddRawChange), arg0) } -// AddRawChangesSetHead mocks base method. -func (m *MockTreeStorage) AddRawChangesSetHead(arg0 []*treechangeproto.RawTreeChangeWithId, arg1 []string) error { +// AddRawChangesSetHeads mocks base method. +func (m *MockTreeStorage) AddRawChangesSetHeads(arg0 []*treechangeproto.RawTreeChangeWithId, arg1 []string) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "AddRawChangesSetHead", arg0, arg1) + ret := m.ctrl.Call(m, "AddRawChangesSetHeads", arg0, arg1) ret0, _ := ret[0].(error) return ret0 } -// AddRawChangesSetHead indicates an expected call of AddRawChangesSetHead. -func (mr *MockTreeStorageMockRecorder) AddRawChangesSetHead(arg0, arg1 interface{}) *gomock.Call { +// AddRawChangesSetHeads indicates an expected call of AddRawChangesSetHeads. +func (mr *MockTreeStorageMockRecorder) AddRawChangesSetHeads(arg0, arg1 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddRawChangesSetHead", reflect.TypeOf((*MockTreeStorage)(nil).AddRawChangesSetHead), arg0, arg1) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddRawChangesSetHeads", reflect.TypeOf((*MockTreeStorage)(nil).AddRawChangesSetHeads), arg0, arg1) } // Delete mocks base method. diff --git a/commonspace/object/tree/treestorage/treestorage.go b/commonspace/object/tree/treestorage/treestorage.go index 34f7f480..db566f86 100644 --- a/commonspace/object/tree/treestorage/treestorage.go +++ b/commonspace/object/tree/treestorage/treestorage.go @@ -31,7 +31,7 @@ type TreeStorage interface { Heads() ([]string, error) SetHeads(heads []string) error AddRawChange(change *treechangeproto.RawTreeChangeWithId) error - AddRawChangesSetHead(changes []*treechangeproto.RawTreeChangeWithId, heads []string) error + AddRawChangesSetHeads(changes []*treechangeproto.RawTreeChangeWithId, heads []string) error GetRawChange(ctx context.Context, id string) (*treechangeproto.RawTreeChangeWithId, error) HasChange(ctx context.Context, id string) (bool, error) diff --git a/commonspace/space.go b/commonspace/space.go index 1d7b3ff8..acd58a22 100644 --- a/commonspace/space.go +++ b/commonspace/space.go @@ -385,6 +385,9 @@ func (s *space) HandleMessage(ctx context.Context, hm HandleMessage) (err error) _ = s.handleQueue.CloseThread(threadId) }() } + if hm.PeerCtx == nil { + hm.PeerCtx = ctx + } err = s.handleQueue.Add(ctx, threadId, hm) if err == mb.ErrOverflowed { log.InfoCtx(ctx, "queue overflowed", zap.String("spaceId", s.id), zap.String("objectId", threadId))