Skip to content

Commit 0c07630

Browse files
committed
[ML] Fix and unmute Transform upgrade test (elastic#132995)
(cherry picked from commit 208ae57) # Conflicts: # muted-tests.yml # x-pack/plugin/transform/src/main/java/org/elasticsearch/xpack/transform/action/TransportUpgradeTransformsAction.java
1 parent 6f62ae3 commit 0c07630

File tree

4 files changed

+24
-19
lines changed

4 files changed

+24
-19
lines changed

x-pack/plugin/transform/src/main/java/org/elasticsearch/xpack/transform/action/TransportUpgradeTransformsAction.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
import org.elasticsearch.threadpool.ThreadPool;
3030
import org.elasticsearch.transport.TransportService;
3131
import org.elasticsearch.xpack.core.XPackSettings;
32-
import org.elasticsearch.xpack.core.ml.utils.TransportVersionUtils;
3332
import org.elasticsearch.xpack.core.security.SecurityContext;
3433
import org.elasticsearch.xpack.core.transform.TransformMetadata;
3534
import org.elasticsearch.xpack.core.transform.action.UpgradeTransformsAction;
@@ -107,7 +106,7 @@ protected void masterOperation(Task ignoredTask, Request request, ClusterState s
107106
}
108107

109108
// do not allow in mixed clusters
110-
if (TransportVersionUtils.isMinTransportVersionSameAsCurrent(state) == false) {
109+
if (state.nodes().isMixedVersionCluster()) {
111110
listener.onFailure(
112111
new ElasticsearchStatusException("Cannot upgrade transforms while cluster upgrade is in progress.", RestStatus.CONFLICT)
113112
);

x-pack/plugin/transform/src/main/java/org/elasticsearch/xpack/transform/persistence/IndexBasedTransformConfigManager.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -295,16 +295,19 @@ public void deleteOldIndices(ActionListener<Boolean> listener) {
295295

296296
// use the transform context as we access system indexes
297297
try (ThreadContext.StoredContext ctx = client.threadPool().getThreadContext().stashWithOrigin(TRANSFORM_ORIGIN)) {
298-
indicesToDelete.addAll(
299-
Arrays.asList(
300-
indexNameExpressionResolver.concreteIndexNames(
301-
state,
302-
IndicesOptions.lenientExpandHidden(),
303-
TransformInternalIndexConstants.INDEX_NAME_PATTERN
304-
)
305-
)
298+
var matchingIndexes = indexNameExpressionResolver.concreteIndices(
299+
state,
300+
IndicesOptions.lenientExpandHidden(),
301+
TransformInternalIndexConstants.INDEX_NAME_PATTERN
306302
);
307303

304+
for (var index : matchingIndexes) {
305+
var meta = state.getMetadata().indexMetadata(index);
306+
if (meta.isSystem() == false) { // ignore system indices as these are automatically managed
307+
indicesToDelete.add(meta.getIndex().getName());
308+
}
309+
}
310+
308311
indicesToDelete.addAll(
309312
Arrays.asList(
310313
indexNameExpressionResolver.concreteIndexNames(

x-pack/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/MLModelDeploymentsUpgradeIT.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,10 +73,10 @@ public void setUpLogging() throws IOException {
7373
request.setJsonEntity("""
7474
{
7575
"persistent": {
76-
"logger.org.elasticsearch.xpack.ml.inference": "TRACE",
76+
"logger.org.elasticsearch.xpack.ml.inference": "DEBUG",
7777
"logger.org.elasticsearch.xpack.ml.inference.assignments": "DEBUG",
7878
"logger.org.elasticsearch.xpack.ml.process": "DEBUG",
79-
"logger.org.elasticsearch.xpack.ml.action": "TRACE"
79+
"logger.org.elasticsearch.xpack.ml.action": "DEBUG"
8080
}
8181
}
8282
""");

x-pack/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/TransformSurvivesUpgradeIT.java

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import org.apache.http.HttpHost;
1010
import org.apache.http.entity.ContentType;
1111
import org.apache.http.entity.StringEntity;
12+
import org.elasticsearch.Version;
1213
import org.elasticsearch.client.Request;
1314
import org.elasticsearch.client.Response;
1415
import org.elasticsearch.client.RestClient;
@@ -131,11 +132,11 @@ private void createAndStartContinuousTransform() throws Exception {
131132

132133
assertBusy(() -> {
133134
var stateAndStats = getTransformStats(CONTINUOUS_TRANSFORM_ID);
135+
assertThat((Integer) XContentMapValues.extractValue("stats.documents_indexed", stateAndStats), equalTo(ENTITIES.size()));
134136
assertThat(
135-
((Integer) XContentMapValues.extractValue("stats.documents_indexed", stateAndStats)).longValue(),
136-
equalTo(ENTITIES.size())
137+
((Integer) XContentMapValues.extractValue("stats.documents_processed", stateAndStats)).longValue(),
138+
equalTo(totalDocsWritten)
137139
);
138-
assertThat((Integer) XContentMapValues.extractValue("stats.documents_processed", stateAndStats), equalTo(totalDocsWritten));
139140
// Even if we get back to started, we may periodically get set back to `indexing` when triggered.
140141
// Though short lived due to no changes on the source indices, it could result in flaky test behavior
141142
assertThat(stateAndStats.get("state"), oneOf("started", "indexing"));
@@ -237,10 +238,12 @@ private void verifyUpgradeFailsIfMixedCluster() {
237238
if (isOriginalClusterCurrent()) {
238239
return;
239240
}
240-
final Request upgradeTransformRequest = new Request("POST", getTransformEndpoint() + "_upgrade");
241-
242-
Exception ex = expectThrows(Exception.class, () -> client().performRequest(upgradeTransformRequest));
243-
assertThat(ex.getMessage(), containsString("All nodes must be the same version"));
241+
var oldestVersion = Version.fromString(UPGRADE_FROM_VERSION);
242+
if (oldestVersion.onOrAfter(Version.V_9_3_0)) {
243+
final Request upgradeTransformRequest = new Request("POST", getTransformEndpoint() + "_upgrade");
244+
Exception ex = expectThrows(Exception.class, () -> client().performRequest(upgradeTransformRequest));
245+
assertThat(ex.getMessage(), containsString("Cannot upgrade transforms while cluster upgrade is in progress"));
246+
}
244247
}
245248

246249
private void verifyUpgrade() throws IOException {

0 commit comments

Comments
 (0)