Skip to content

Commit 2a6f368

Browse files
committed
Fix max_primary_shard_size resize factor math (#86897)
1 parent 3585a6a commit 2a6f368

File tree

3 files changed

+17
-11
lines changed

3 files changed

+17
-11
lines changed

docs/changelog/86897.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
pr: 86897
2+
summary: Fix `max_primary_shard_size` resize factor math
3+
area: ILM+SLM
4+
type: bug
5+
issues: []

server/src/main/java/org/elasticsearch/action/admin/indices/shrink/ResizeNumberOfShardsCalculator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ protected static int calculateAcceptableNumberOfShards(final int sourceIndexShar
134134
}
135135
}
136136
} else {
137-
for (int i = 1; i < num; i++) {
137+
for (int i = 1; i <= num; i++) {
138138
if (sourceIndexShardsNum % i == 0 && minShardsNum <= i) {
139139
return i;
140140
}

server/src/test/java/org/elasticsearch/action/admin/indices/shrink/ResizeNumberOfShardsCalculatorTests.java

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -91,15 +91,16 @@ public void testSplitInputs() {
9191
}
9292

9393
public void testCalculateTargetShardsNumberInShrink() {
94-
assertEquals(calculateAcceptableNumberOfShards(0, 0), 1);
95-
assertEquals(calculateAcceptableNumberOfShards(10, 0), 1);
96-
assertEquals(calculateAcceptableNumberOfShards(10, 1), 1);
97-
assertEquals(calculateAcceptableNumberOfShards(10, 2), 2);
98-
assertEquals(calculateAcceptableNumberOfShards(10, 3), 5);
99-
assertEquals(calculateAcceptableNumberOfShards(10, 6), 10);
100-
assertEquals(calculateAcceptableNumberOfShards(10, 11), 10);
101-
assertEquals(calculateAcceptableNumberOfShards(59, 21), 59);
102-
assertEquals(calculateAcceptableNumberOfShards(60, 21), 30);
103-
assertEquals(calculateAcceptableNumberOfShards(60, 31), 60);
94+
assertEquals(1, calculateAcceptableNumberOfShards(0, 0));
95+
assertEquals(3, calculateAcceptableNumberOfShards(9, 2));
96+
assertEquals(1, calculateAcceptableNumberOfShards(10, 0));
97+
assertEquals(1, calculateAcceptableNumberOfShards(10, 1));
98+
assertEquals(2, calculateAcceptableNumberOfShards(10, 2));
99+
assertEquals(5, calculateAcceptableNumberOfShards(10, 3));
100+
assertEquals(10, calculateAcceptableNumberOfShards(10, 6));
101+
assertEquals(10, calculateAcceptableNumberOfShards(10, 11));
102+
assertEquals(59, calculateAcceptableNumberOfShards(59, 21));
103+
assertEquals(30, calculateAcceptableNumberOfShards(60, 21));
104+
assertEquals(60, calculateAcceptableNumberOfShards(60, 31));
104105
}
105106
}

0 commit comments

Comments
 (0)