diff --git a/weed/shell/command_ec_common.go b/weed/shell/command_ec_common.go index f1d7012d8..0affc7365 100644 --- a/weed/shell/command_ec_common.go +++ b/weed/shell/command_ec_common.go @@ -783,8 +783,8 @@ func (ecb *ecBalancer) pickRackToBalanceShardsInto(rackToEcNodes map[RackId]*EcR details += fmt.Sprintf(" Skipped %s because it has no free slots\n", rackId) continue } - if ecb.replicaPlacement != nil && shards >= ecb.replicaPlacement.DiffRackCount { - details += fmt.Sprintf(" Skipped %s because shards %d >= replica placement limit for other racks (%d)\n", rackId, shards, ecb.replicaPlacement.DiffRackCount) + if ecb.replicaPlacement != nil && shards > ecb.replicaPlacement.DiffRackCount { + details += fmt.Sprintf(" Skipped %s because shards %d > replica placement limit for other racks (%d)\n", rackId, shards, ecb.replicaPlacement.DiffRackCount) continue } @@ -977,8 +977,8 @@ func (ecb *ecBalancer) pickEcNodeToBalanceShardsInto(vid needle.VolumeId, existi } shards := nodeShards[node] - if ecb.replicaPlacement != nil && shards >= ecb.replicaPlacement.SameRackCount { - details += fmt.Sprintf(" Skipped %s because shards %d >= replica placement limit for the rack (%d)\n", node.info.Id, shards, ecb.replicaPlacement.SameRackCount) + if ecb.replicaPlacement != nil && shards > ecb.replicaPlacement.SameRackCount { + details += fmt.Sprintf(" Skipped %s because shards %d > replica placement limit for the rack (%d)\n", node.info.Id, shards, ecb.replicaPlacement.SameRackCount) continue } diff --git a/weed/shell/command_ec_common_test.go b/weed/shell/command_ec_common_test.go index f76840f3c..87cf371d7 100644 --- a/weed/shell/command_ec_common_test.go +++ b/weed/shell/command_ec_common_test.go @@ -138,8 +138,8 @@ func TestPickRackToBalanceShardsInto(t *testing.T) { {topologyEc, "6241", "123", []string{"rack1", "rack2", "rack3", "rack4", "rack5", "rack6"}, ""}, {topologyEc, "6242", "123", []string{"rack1", "rack2", "rack3", "rack4", "rack5", "rack6"}, ""}, // EC volumes. - {topologyEc, "9577", "", nil, "shards 1 >= replica placement limit for other racks (0)"}, - {topologyEc, "9577", "111", nil, "shards 1 >= replica placement limit for other racks (1)"}, + {topologyEc, "9577", "", nil, "shards 1 > replica placement limit for other racks (0)"}, + {topologyEc, "9577", "111", []string{"rack1", "rack2", "rack3"}, ""}, {topologyEc, "9577", "222", []string{"rack1", "rack2", "rack3"}, ""}, {topologyEc, "10457", "222", []string{"rack1"}, ""}, {topologyEc, "12737", "222", []string{"rack2"}, ""},