Skip to content

Commit dab1efc

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

File tree

5 files changed

+24
-22
lines changed

5 files changed

+24
-22
lines changed

muted-tests.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -402,9 +402,6 @@ tests:
402402
- class: org.elasticsearch.packaging.test.ArchiveGenerateInitialCredentialsTests
403403
method: test50CredentialAutogenerationOnlyOnce
404404
issue: https://github.com/elastic/elasticsearch/issues/132878
405-
- class: org.elasticsearch.upgrades.TransformSurvivesUpgradeIT
406-
method: testTransformRollingUpgrade
407-
issue: https://github.com/elastic/elasticsearch/issues/132892
408405
- class: org.elasticsearch.xpack.eql.planner.QueryTranslatorTests
409406
method: testMatchOptimization
410407
issue: https://github.com/elastic/elasticsearch/issues/132894

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;
@@ -130,11 +131,11 @@ private void createAndStartContinuousTransform() throws Exception {
130131

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

245248
private void verifyUpgrade() throws IOException {

0 commit comments

Comments
 (0)