Fix inconsistency in DataCoord (#18170) (#18171)

Signed-off-by: zhenshan.cao <zhenshan.cao@zilliz.com>
This commit is contained in:
zhenshan.cao 2022-07-08 13:48:21 +08:00 committed by GitHub
parent fcb5db0e27
commit 72910d65e0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 3 deletions

View File

@ -171,10 +171,10 @@ func (m *meta) GetNumRowsOfCollection(collectionID UniqueID) int64 {
func (m *meta) AddSegment(segment *SegmentInfo) error { func (m *meta) AddSegment(segment *SegmentInfo) error {
m.Lock() m.Lock()
defer m.Unlock() defer m.Unlock()
m.segments.SetSegment(segment.GetID(), segment)
if err := m.saveSegmentInfo(segment); err != nil { if err := m.saveSegmentInfo(segment); err != nil {
return err return err
} }
m.segments.SetSegment(segment.GetID(), segment)
metrics.DataCoordNumSegments.WithLabelValues(segment.GetState().String()).Inc() metrics.DataCoordNumSegments.WithLabelValues(segment.GetState().String()).Inc()
return nil return nil
} }

View File

@ -2615,7 +2615,8 @@ func TestDataCoordServer_SetSegmentState(t *testing.T) {
Timestamp: 0, Timestamp: 0,
}, },
} }
svr.meta.AddSegment(NewSegmentInfo(segment)) err2 := svr.meta.AddSegment(NewSegmentInfo(segment))
assert.NotNil(t, err2)
// Set segment state. // Set segment state.
svr.SetSegmentState(context.TODO(), &datapb.SetSegmentStateRequest{ svr.SetSegmentState(context.TODO(), &datapb.SetSegmentStateRequest{
SegmentId: 1000, SegmentId: 1000,
@ -2634,7 +2635,7 @@ func TestDataCoordServer_SetSegmentState(t *testing.T) {
assert.Nil(t, err) assert.Nil(t, err)
assert.EqualValues(t, commonpb.ErrorCode_Success, resp.Status.ErrorCode) assert.EqualValues(t, commonpb.ErrorCode_Success, resp.Status.ErrorCode)
assert.EqualValues(t, 1, len(resp.States)) assert.EqualValues(t, 1, len(resp.States))
assert.EqualValues(t, commonpb.SegmentState_Flushed, resp.States[0].State) assert.EqualValues(t, commonpb.SegmentState_NotExist, resp.States[0].State)
}) })
t.Run("with closed server", func(t *testing.T) { t.Run("with closed server", func(t *testing.T) {