Skip to content

Commit fd0884a

Browse files
davidkyleelasticsearchmachine
andauthored
[9.2] [ML] Fix and unmute Transform upgrade test (#132995) (#136373)
* [ML] Fix and unmute Transform upgrade test (#132995) (cherry picked from commit 208ae57) # Conflicts: # x-pack/plugin/transform/src/main/java/org/elasticsearch/xpack/transform/action/TransportUpgradeTransformsAction.java * Update TransformSurvivesUpgradeIT.java * [CI] Auto commit changes from spotless --------- Co-authored-by: elasticsearchmachine <[email protected]>
1 parent edd5ba9 commit fd0884a

File tree

5 files changed

+17
-31
lines changed

5 files changed

+17
-31
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: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@
3535
import static org.elasticsearch.xpack.test.rest.XPackRestTestConstants.TRANSFORM_INTERNAL_INDEX_PREFIX;
3636
import static org.elasticsearch.xpack.test.rest.XPackRestTestConstants.TRANSFORM_INTERNAL_INDEX_PREFIX_DEPRECATED;
3737
import static org.elasticsearch.xpack.test.rest.XPackRestTestConstants.TRANSFORM_TASK_NAME;
38-
import static org.hamcrest.Matchers.containsString;
3938
import static org.hamcrest.Matchers.equalTo;
4039
import static org.hamcrest.Matchers.greaterThan;
4140
import static org.hamcrest.Matchers.greaterThanOrEqualTo;
@@ -95,7 +94,6 @@ public void testTransformRollingUpgrade() throws Exception {
9594
lastCheckpoint = 2;
9695
}
9796
verifyContinuousTransformHandlesData(lastCheckpoint);
98-
verifyUpgradeFailsIfMixedCluster();
9997
}
10098
case UPGRADED -> {
10199
client().performRequest(waitForYellow);
@@ -130,11 +128,11 @@ private void createAndStartContinuousTransform() throws Exception {
130128

131129
assertBusy(() -> {
132130
var stateAndStats = getTransformStats(CONTINUOUS_TRANSFORM_ID);
131+
assertThat((Integer) XContentMapValues.extractValue("stats.documents_indexed", stateAndStats), equalTo(ENTITIES.size()));
133132
assertThat(
134-
((Integer) XContentMapValues.extractValue("stats.documents_indexed", stateAndStats)).longValue(),
135-
equalTo(ENTITIES.size())
133+
((Integer) XContentMapValues.extractValue("stats.documents_processed", stateAndStats)).longValue(),
134+
equalTo(totalDocsWritten)
136135
);
137-
assertThat((Integer) XContentMapValues.extractValue("stats.documents_processed", stateAndStats), equalTo(totalDocsWritten));
138136
// Even if we get back to started, we may periodically get set back to `indexing` when triggered.
139137
// Though short lived due to no changes on the source indices, it could result in flaky test behavior
140138
assertThat(stateAndStats.get("state"), oneOf("started", "indexing"));
@@ -231,17 +229,6 @@ private void verifyContinuousTransformHandlesData(long expectedLastCheckpoint) t
231229
});
232230
}
233231

234-
private void verifyUpgradeFailsIfMixedCluster() {
235-
// upgrade tests by design are also executed with the same version, this check must be skipped in this case, see gh#39102.
236-
if (isOriginalClusterCurrent()) {
237-
return;
238-
}
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"));
243-
}
244-
245232
private void verifyUpgrade() throws IOException {
246233
final Request upgradeTransformRequest = new Request("POST", getTransformEndpoint() + "_upgrade");
247234
Response response = client().performRequest(upgradeTransformRequest);

0 commit comments

Comments
 (0)