Skip to content

Commit 7d5f74e

Browse files
authored
Fix and unmute testSetUpgradeMode_ExistingTaskGetsUnassigned (#55368) (#55452)
1 parent b9da307 commit 7d5f74e

File tree

6 files changed

+35
-14
lines changed

6 files changed

+35
-14
lines changed

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@ private static void createFirstConcreteIndex(Client client,
139139
boolean addAlias,
140140
boolean isHiddenAttributeAvailable,
141141
ActionListener<Boolean> listener) {
142+
logger.info("About to create first concrete index [{}] with alias [{}]", index, alias);
142143
CreateIndexRequestBuilder requestBuilder = client.admin()
143144
.indices()
144145
.prepareCreate(index);
@@ -175,6 +176,7 @@ private static void updateWriteAlias(Client client,
175176
String newIndex,
176177
boolean isHiddenAttributeAvailable,
177178
ActionListener<Boolean> listener) {
179+
logger.info("About to move write alias [{}] from index [{}] to index [{}]", alias, currentIndex, newIndex);
178180
IndicesAliasesRequest.AliasActions addNewAliasAction = IndicesAliasesRequest.AliasActions.add().index(newIndex).alias(alias);
179181
if (isHiddenAttributeAvailable) {
180182
addNewAliasAction.isHidden(true);

x-pack/plugin/ml/qa/native-multi-node-tests/src/test/java/org/elasticsearch/xpack/ml/integration/ClassificationIT.java

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
*/
66
package org.elasticsearch.xpack.ml.integration;
77

8+
import org.apache.logging.log4j.message.ParameterizedMessage;
9+
import org.elasticsearch.ElasticsearchException;
810
import org.elasticsearch.ElasticsearchStatusException;
911
import org.elasticsearch.action.admin.indices.refresh.RefreshRequest;
1012
import org.elasticsearch.action.bulk.BulkRequestBuilder;
@@ -502,7 +504,6 @@ public void testTwoJobsWithSameRandomizeSeedUseSameTrainingSet() throws Exceptio
502504
assertThat(secondRunTrainingRowsIds, equalTo(firstRunTrainingRowsIds));
503505
}
504506

505-
@AwaitsFix(bugUrl = "https://github.com/elastic/elasticsearch/issues/55221")
506507
public void testSetUpgradeMode_ExistingTaskGetsUnassigned() throws Exception {
507508
initialize("classification_set_upgrade_mode");
508509
indexData(sourceIndex, 300, 0, KEYWORD_FIELD);
@@ -520,18 +521,33 @@ public void testSetUpgradeMode_ExistingTaskGetsUnassigned() throws Exception {
520521
assertThat(analyticsTaskList(), hasSize(1));
521522
assertThat(analyticsAssignedTaskList(), is(empty()));
522523

523-
GetDataFrameAnalyticsStatsAction.Response.Stats analyticsStats = getAnalyticsStats(jobId);
524-
assertThat(analyticsStats.getAssignmentExplanation(), is(equalTo(AWAITING_UPGRADE.getExplanation())));
525-
assertThat(analyticsStats.getNode(), is(nullValue()));
524+
assertBusy(() -> {
525+
try {
526+
GetDataFrameAnalyticsStatsAction.Response.Stats analyticsStats = getAnalyticsStats(jobId);
527+
assertThat(analyticsStats.getAssignmentExplanation(), is(equalTo(AWAITING_UPGRADE.getExplanation())));
528+
assertThat(analyticsStats.getNode(), is(nullValue()));
529+
} catch (ElasticsearchException e) {
530+
logger.error(new ParameterizedMessage("[{}] Encountered exception while fetching analytics stats", jobId), e);
531+
fail(e.getDetailedMessage());
532+
}
533+
});
526534

527535
setUpgradeModeTo(false);
528536
assertThat(analyticsTaskList(), hasSize(1));
529537
assertBusy(() -> assertThat(analyticsAssignedTaskList(), hasSize(1)));
530538

531-
analyticsStats = getAnalyticsStats(jobId);
532-
assertThat(analyticsStats.getAssignmentExplanation(), is(not(equalTo(AWAITING_UPGRADE.getExplanation()))));
539+
assertBusy(() -> {
540+
try {
541+
GetDataFrameAnalyticsStatsAction.Response.Stats analyticsStats = getAnalyticsStats(jobId);
542+
assertThat(analyticsStats.getAssignmentExplanation(), is(not(equalTo(AWAITING_UPGRADE.getExplanation()))));
543+
} catch (ElasticsearchException e) {
544+
logger.error(new ParameterizedMessage("[{}] Encountered exception while fetching analytics stats", jobId), e);
545+
fail(e.getDetailedMessage());
546+
}
547+
});
533548

534549
waitUntilAnalyticsIsStopped(jobId);
550+
assertProgress(jobId, 100, 100, 100, 100);
535551
}
536552

537553
public void testSetUpgradeMode_NewTaskDoesNotStart() throws Exception {

x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/action/TransportGetDataFrameAnalyticsStatsAction.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -210,11 +210,15 @@ private void searchStats(String configId, ActionListener<Stats> listener) {
210210

211211
executeAsyncWithOrigin(client, ML_ORIGIN, MultiSearchAction.INSTANCE, multiSearchRequest, ActionListener.wrap(
212212
multiSearchResponse -> {
213-
for (MultiSearchResponse.Item itemResponse : multiSearchResponse.getResponses()) {
213+
MultiSearchResponse.Item[] itemResponses = multiSearchResponse.getResponses();
214+
for (int i = 0; i < itemResponses.length; ++i) {
215+
MultiSearchResponse.Item itemResponse = itemResponses[i];
214216
if (itemResponse.isFailure()) {
217+
SearchRequest itemRequest = multiSearchRequest.requests().get(i);
215218
logger.error(
216219
new ParameterizedMessage(
217-
"[{}] Item failure encountered during multi search: {}", configId, itemResponse.getFailureMessage()),
220+
"[{}] Item failure encountered during multi search for request [indices={}, source={}]: {}",
221+
configId, itemRequest.indices(), itemRequest.source(), itemResponse.getFailureMessage()),
218222
itemResponse.getFailure());
219223
listener.onFailure(ExceptionsHelper.serverError(itemResponse.getFailureMessage(), itemResponse.getFailure()));
220224
return;

x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/action/TransportStartDataFrameAnalyticsAction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -640,9 +640,9 @@ public PersistentTasksCustomMetadata.Assignment getAssignment(StartDataFrameAnal
640640
@Override
641641
protected void nodeOperation(AllocatedPersistentTask task, StartDataFrameAnalyticsAction.TaskParams params,
642642
PersistentTaskState state) {
643-
logger.info("[{}] Starting data frame analytics", params.getId());
644643
DataFrameAnalyticsTaskState analyticsTaskState = (DataFrameAnalyticsTaskState) state;
645644
DataFrameAnalyticsState analyticsState = analyticsTaskState == null ? null : analyticsTaskState.getState();
645+
logger.info("[{}] Starting data frame analytics from state [{}]", params.getId(), analyticsState);
646646

647647
// If we are "stopping" there is nothing to do and we should stop
648648
if (DataFrameAnalyticsState.STOPPING.equals(analyticsState)) {

x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/dataframe/process/AnalyticsProcessManager.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import org.apache.lucene.util.SetOnce;
1212
import org.elasticsearch.action.admin.indices.refresh.RefreshAction;
1313
import org.elasticsearch.action.admin.indices.refresh.RefreshRequest;
14-
import org.elasticsearch.action.index.IndexRequest;
1514
import org.elasticsearch.action.search.SearchResponse;
1615
import org.elasticsearch.action.support.IndicesOptions;
1716
import org.elasticsearch.client.Client;
@@ -267,10 +266,6 @@ private void writeHeaderRecord(DataFrameDataExtractor dataExtractor, AnalyticsPr
267266
process.writeRecord(headerRecord);
268267
}
269268

270-
private void indexDataCounts(DataCounts dataCounts) {
271-
IndexRequest indexRequest = new IndexRequest(MlStatsIndex.writeAlias());
272-
}
273-
274269
private void restoreState(DataFrameAnalyticsTask task, DataFrameAnalyticsConfig config, @Nullable BytesReference state,
275270
AnalyticsProcess<AnalyticsResult> process) {
276271
if (config.getAnalysis().persistsState() == false) {

x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/inference/TrainedModelStatsService.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ public void queueStats(InferenceStats stats) {
105105
}
106106

107107
void stop() {
108+
logger.info("About to stop TrainedModelStatsService");
108109
stopped = true;
109110
statsQueue.clear();
110111

@@ -115,6 +116,7 @@ void stop() {
115116
}
116117

117118
void start() {
119+
logger.info("About to start TrainedModelStatsService");
118120
stopped = false;
119121
scheduledFuture = threadPool.scheduleWithFixedDelay(this::updateStats,
120122
PERSISTENCE_INTERVAL,
@@ -126,11 +128,13 @@ void updateStats() {
126128
return;
127129
}
128130
if (verifiedStatsIndexCreated == false) {
131+
logger.info("About to create the stats index as it does not exist yet");
129132
try {
130133
PlainActionFuture<Boolean> listener = new PlainActionFuture<>();
131134
MlStatsIndex.createStatsIndexAndAliasIfNecessary(client, clusterState, indexNameExpressionResolver, listener);
132135
listener.actionGet();
133136
verifiedStatsIndexCreated = true;
137+
logger.info("Created stats index");
134138
} catch (Exception e) {
135139
logger.error("failure creating ml stats index for storing model stats", e);
136140
return;

0 commit comments

Comments
 (0)