Skip to content

Commit 18c5075

Browse files
committed
Revert part of elastic#125432
The logic is more complicated on 8.x than on main, so we need more of the code to remain as it originally was.
1 parent 8287f40 commit 18c5075

File tree

1 file changed

+10
-18
lines changed

1 file changed

+10
-18
lines changed

x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/ml/MlConfigVersion.java

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import java.util.Collection;
2626
import java.util.Collections;
2727
import java.util.HashMap;
28-
import java.util.HashSet;
2928
import java.util.Map;
3029
import java.util.NavigableMap;
3130
import java.util.Set;
@@ -281,24 +280,17 @@ public static MlConfigVersion getMaxMlConfigVersion(DiscoveryNodes nodes) {
281280
public static Tuple<MlConfigVersion, MlConfigVersion> getMinMaxMlConfigVersion(DiscoveryNodes nodes) {
282281
MlConfigVersion minMlConfigVersion = MlConfigVersion.CURRENT;
283282
MlConfigVersion maxMlConfigVersion = MlConfigVersion.FIRST_ML_VERSION;
284-
285-
// many nodes will have the same versions, so de-duplicate versions first so that we only have to parse unique versions
286-
final Set<String> versions = new HashSet<>();
287283
for (DiscoveryNode node : nodes) {
288-
String mlConfigVerStr = node.getAttributes().get(ML_CONFIG_VERSION_NODE_ATTR);
289-
if (mlConfigVerStr != null) { // ignore nodes that don't have an ML config version
290-
versions.add(mlConfigVerStr);
291-
}
292-
}
293-
294-
// of the unique versions, find the min and max
295-
for (String version : versions) {
296-
MlConfigVersion mlConfigVersion = fromString(version);
297-
if (mlConfigVersion.before(minMlConfigVersion)) {
298-
minMlConfigVersion = mlConfigVersion;
299-
}
300-
if (mlConfigVersion.after(maxMlConfigVersion)) {
301-
maxMlConfigVersion = mlConfigVersion;
284+
try {
285+
MlConfigVersion mlConfigVersion = getMlConfigVersionForNode(node);
286+
if (mlConfigVersion.before(minMlConfigVersion)) {
287+
minMlConfigVersion = mlConfigVersion;
288+
}
289+
if (mlConfigVersion.after(maxMlConfigVersion)) {
290+
maxMlConfigVersion = mlConfigVersion;
291+
}
292+
} catch (IllegalStateException e) {
293+
// This means we encountered a node that is after 8.10.0 but has the ML plugin disabled - ignore it
302294
}
303295
}
304296
return new Tuple<>(minMlConfigVersion, maxMlConfigVersion);

0 commit comments

Comments
 (0)