From c0edffc63f10fa125fe41d251af2f806b106e582 Mon Sep 17 00:00:00 2001
From: XuanYang-cn <xuan.yang@zilliz.com>
Date: Tue, 2 Mar 2021 15:47:37 +0800
Subject: [PATCH] Fix datanode update segment statistics bug

Signed-off-by: XuanYang-cn <xuan.yang@zilliz.com>
---
 internal/datanode/collection_replica.go      | 9 +++++----
 internal/datanode/collection_replica_test.go | 9 +++++++++
 2 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/internal/datanode/collection_replica.go b/internal/datanode/collection_replica.go
index 740afb781..d28314076 100644
--- a/internal/datanode/collection_replica.go
+++ b/internal/datanode/collection_replica.go
@@ -151,10 +151,11 @@ func (replica *ReplicaImpl) getSegmentStatisticsUpdates(segmentID UniqueID) (*in
 	for _, ele := range replica.segments {
 		if ele.segmentID == segmentID {
 			updates := &internalpb2.SegmentStatisticsUpdates{
-				SegmentID:    segmentID,
-				MemorySize:   ele.memorySize,
-				NumRows:      ele.numRows,
-				IsNewSegment: ele.isNew,
+				SegmentID:     segmentID,
+				MemorySize:    ele.memorySize,
+				NumRows:       ele.numRows,
+				IsNewSegment:  ele.isNew,
+				StartPosition: new(internalpb2.MsgPosition),
 			}
 
 			if ele.isNew {
diff --git a/internal/datanode/collection_replica_test.go b/internal/datanode/collection_replica_test.go
index 2cb20b96c..1c14c7b54 100644
--- a/internal/datanode/collection_replica_test.go
+++ b/internal/datanode/collection_replica_test.go
@@ -124,6 +124,15 @@ func TestReplica_Segment(t *testing.T) {
 		assert.Equal(t, UniqueID(0), update.SegmentID)
 		assert.Equal(t, int64(100), update.NumRows)
 		assert.True(t, update.IsNewSegment)
+
+		update, err = replica.getSegmentStatisticsUpdates(0)
+		assert.NoError(t, err)
+		assert.False(t, update.IsNewSegment)
+		assert.NotNil(t, update.StartPosition)
+		assert.Equal(t, UniqueID(0), update.SegmentID)
+		assert.Equal(t, int64(100), update.NumRows)
+		assert.Zero(t, update.StartPosition.Timestamp)
+		assert.Zero(t, update.StartPosition.MsgID)
 	})
 
 	t.Run("Test errors", func(t *testing.T) {
-- 
GitLab