diff --git a/internal/querycoordv2/meta/leader_view_manager.go b/internal/querycoordv2/meta/leader_view_manager.go index f26e9df584..dd98b9bae4 100644 --- a/internal/querycoordv2/meta/leader_view_manager.go +++ b/internal/querycoordv2/meta/leader_view_manager.go @@ -246,6 +246,9 @@ func (mgr *LeaderViewManager) GetLeadersByShard(shard string) map[int64]*LeaderV } func (mgr *LeaderViewManager) GetLatestLeadersByReplicaShard(replica *Replica, shard string) *LeaderView { + if replica == nil { + return nil + } mgr.rwmutex.RLock() defer mgr.rwmutex.RUnlock() diff --git a/internal/querycoordv2/meta/leader_view_manager_test.go b/internal/querycoordv2/meta/leader_view_manager_test.go index 93ad8e0779..48e4580e0e 100644 --- a/internal/querycoordv2/meta/leader_view_manager_test.go +++ b/internal/querycoordv2/meta/leader_view_manager_test.go @@ -143,6 +143,15 @@ func (suite *LeaderViewManagerSuite) TestGetDist() { suite.Len(segments, 1) } +func (suite *LeaderViewManagerSuite) TestGetLatestLeadersByReplicaShard() { + suite.Run("replica_nil", func() { + suite.NotPanics(func() { + lv := suite.mgr.GetLatestLeadersByReplicaShard(nil, "") + suite.Nil(lv) + }) + }) +} + func (suite *LeaderViewManagerSuite) TestGetLeader() { mgr := suite.mgr