mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2025-10-15 20:06:19 +08:00
fix divide by zero
This commit is contained in:
@@ -56,7 +56,7 @@ func pickBrokers(brokers cmap.ConcurrentMap[string, *BrokerStats], count int32)
|
|||||||
return pickedBrokers
|
return pickedBrokers
|
||||||
}
|
}
|
||||||
|
|
||||||
func EnsureAssignmentsToActiveBrokers(activeBrokers cmap.ConcurrentMap[string,*BrokerStats], assignments []*mq_pb.BrokerPartitionAssignment) (addedAssignments, updatedAssignments []*mq_pb.BrokerPartitionAssignment) {
|
func EnsureAssignmentsToActiveBrokers(activeBrokers cmap.ConcurrentMap[string, *BrokerStats], assignments []*mq_pb.BrokerPartitionAssignment) (addedAssignments, updatedAssignments []*mq_pb.BrokerPartitionAssignment) {
|
||||||
for _, assignment := range assignments {
|
for _, assignment := range assignments {
|
||||||
if assignment.LeaderBroker == "" {
|
if assignment.LeaderBroker == "" {
|
||||||
addedAssignments = append(addedAssignments, assignment)
|
addedAssignments = append(addedAssignments, assignment)
|
||||||
@@ -69,13 +69,17 @@ func EnsureAssignmentsToActiveBrokers(activeBrokers cmap.ConcurrentMap[string,*B
|
|||||||
}
|
}
|
||||||
|
|
||||||
// pick the brokers with the least number of partitions
|
// pick the brokers with the least number of partitions
|
||||||
pickedBrokers := pickBrokers(activeBrokers, int32(len(addedAssignments)))
|
if len(addedAssignments) > 0 {
|
||||||
for i, assignment := range addedAssignments {
|
pickedBrokers := pickBrokers(activeBrokers, int32(len(addedAssignments)))
|
||||||
assignment.LeaderBroker = pickedBrokers[i]
|
for i, assignment := range addedAssignments {
|
||||||
|
assignment.LeaderBroker = pickedBrokers[i]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
pickedBrokers = pickBrokers(activeBrokers, int32(len(updatedAssignments)))
|
if len(updatedAssignments) == 0 {
|
||||||
for i, assignment := range updatedAssignments {
|
pickedBrokers := pickBrokers(activeBrokers, int32(len(updatedAssignments)))
|
||||||
assignment.LeaderBroker = pickedBrokers[i]
|
for i, assignment := range updatedAssignments {
|
||||||
|
assignment.LeaderBroker = pickedBrokers[i]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return
|
return
|
||||||
|
Reference in New Issue
Block a user