diff --git a/internal/querynode/shard_cluster_service.go b/internal/querynode/shard_cluster_service.go index 1fe05401fc..35166fd196 100644 --- a/internal/querynode/shard_cluster_service.go +++ b/internal/querynode/shard_cluster_service.go @@ -152,7 +152,7 @@ func (s *ShardClusterService) HandoffVChannelSegments(vchannel string, info *que } sc := raw.(*ShardCluster) err := sc.HandoffSegments(info) - if err != nil { + if err == nil { log.Info("successfully handoff ", zap.String("channel", vchannel), zap.Any("segment", info)) } else { log.Warn("failed to handoff", zap.String("channel", vchannel), zap.Any("segment", info), zap.Error(err)) diff --git a/internal/querynode/shard_cluster_service_test.go b/internal/querynode/shard_cluster_service_test.go index 3be4d72e2e..502c315967 100644 --- a/internal/querynode/shard_cluster_service_test.go +++ b/internal/querynode/shard_cluster_service_test.go @@ -102,9 +102,25 @@ func TestShardClusterService_HandoffVChannelSegments(t *testing.T) { assert.NoError(t, err) clusterService.addShardCluster(defaultCollectionID, defaultReplicaID, defaultDMLChannel) + //TODO change shardCluster to interface to mock test behavior - assert.NotPanics(t, func() { - err = clusterService.HandoffVChannelSegments(defaultDMLChannel, &querypb.SegmentChangeInfo{}) - assert.NoError(t, err) + t.Run("normal case", func(t *testing.T) { + assert.NotPanics(t, func() { + err = clusterService.HandoffVChannelSegments(defaultDMLChannel, &querypb.SegmentChangeInfo{}) + assert.NoError(t, err) + }) + }) + + t.Run("error case", func(t *testing.T) { + assert.NotPanics(t, func() { + err = clusterService.HandoffVChannelSegments(defaultDMLChannel, &querypb.SegmentChangeInfo{ + OfflineSegments: []*querypb.SegmentInfo{ + {SegmentID: 1, NodeID: 3, CollectionID: defaultCollectionID, DmChannel: defaultDMLChannel, NodeIds: []UniqueID{3}}, + }, + }) + assert.Error(t, err) + }) + }) + }