mirror of https://github.com/milvus-io/milvus.git
Fix GetReplicas() returns all nodes in ShardReplicas (#16597)
Signed-off-by: yah01 <yang.cen@zilliz.com>pull/16614/head
parent
242f08fb67
commit
b82f6a1a0a
|
@ -1072,8 +1072,11 @@ func (qc *QueryCoord) GetReplicas(ctx context.Context, req *milvuspb.GetReplicas
|
|||
|
||||
for _, replica := range replicas {
|
||||
for _, shard := range replica.ShardReplicas {
|
||||
for nodeID := range shardNodes[shard.DmChannelName] {
|
||||
shard.NodeIds = append(shard.NodeIds, nodeID)
|
||||
nodes := shardNodes[shard.DmChannelName]
|
||||
for _, nodeID := range replica.NodeIds {
|
||||
if _, ok := nodes[nodeID]; ok {
|
||||
shard.NodeIds = append(shard.NodeIds, nodeID)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1494,6 +1494,7 @@ func TestGetReplicas(t *testing.T) {
|
|||
assert.NoError(t, err)
|
||||
assert.Equal(t, commonpb.ErrorCode_Success, status.ErrorCode)
|
||||
waitLoadCollectionDone(ctx, queryCoord, defaultCollectionID)
|
||||
time.Sleep(200 * time.Millisecond)
|
||||
|
||||
getReplicasReq := &milvuspb.GetReplicasRequest{
|
||||
Base: &commonpb.MsgBase{},
|
||||
|
@ -1517,17 +1518,33 @@ func TestGetReplicas(t *testing.T) {
|
|||
assert.NoError(t, err)
|
||||
assert.Equal(t, commonpb.ErrorCode_Success, resp.Status.ErrorCode)
|
||||
assert.Equal(t, 3, len(resp.Replicas))
|
||||
for i := range resp.Replicas {
|
||||
assert.Equal(t, 1, len(resp.Replicas[i].NodeIds))
|
||||
for j := range resp.Replicas[i].ShardReplicas {
|
||||
sawNodes := make(map[UniqueID]struct{})
|
||||
for i, replica := range resp.Replicas {
|
||||
addNodes := make(map[UniqueID]struct{})
|
||||
assert.Equal(t, 1, len(replica.NodeIds))
|
||||
assert.Greater(t, len(replica.NodeIds), 0)
|
||||
assert.Greater(t, len(replica.ShardReplicas), 0)
|
||||
for _, shard := range replica.ShardReplicas {
|
||||
assert.Equal(t,
|
||||
resp.Replicas[i].NodeIds[0],
|
||||
resp.Replicas[i].ShardReplicas[j].LeaderID)
|
||||
replica.NodeIds[0],
|
||||
shard.LeaderID)
|
||||
assert.Greater(t, len(shard.NodeIds), 0)
|
||||
|
||||
for _, nodeID := range shard.NodeIds {
|
||||
_, ok := sawNodes[nodeID]
|
||||
assert.False(t, ok)
|
||||
|
||||
addNodes[nodeID] = struct{}{}
|
||||
}
|
||||
}
|
||||
|
||||
for nodeID := range addNodes {
|
||||
sawNodes[nodeID] = struct{}{}
|
||||
}
|
||||
|
||||
for j := 0; j < i; j++ {
|
||||
assert.NotEqual(t,
|
||||
resp.Replicas[i].NodeIds[0],
|
||||
replica.NodeIds[0],
|
||||
resp.Replicas[j].NodeIds[0])
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue