Skip to content

Commit f61e53e

Browse files
committed
assume false
1 parent 08ec002 commit f61e53e

File tree

1 file changed

+18
-16
lines changed

1 file changed

+18
-16
lines changed

x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/integration/MlDistributedFailureIT.java

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -247,22 +247,24 @@ public void testCloseUnassignedFailedJobAndStopUnassignedStoppingDatafeed() thro
247247
PersistentTasksCustomMetaData.PersistentTask<?> task = MlTasks.getDatafeedTask(datafeedId, tasks);
248248

249249
// It is possible that the datafeed has already detected the job failure and
250-
// terminated itself. In this happens there is no task
251-
if (task != null) {
252-
UpdatePersistentTaskStatusAction.Request updatePersistentTaskStatusRequest =
253-
new UpdatePersistentTaskStatusAction.Request(task.getId(), task.getAllocationId(), DatafeedState.STOPPING);
254-
PersistentTaskResponse updatePersistentTaskStatusResponse =
255-
client().execute(UpdatePersistentTaskStatusAction.INSTANCE, updatePersistentTaskStatusRequest).actionGet();
256-
assertNotNull(updatePersistentTaskStatusResponse.getTask());
257-
258-
// Confirm the datafeed state is now stopping - this may take a while to update in cluster state
259-
assertBusy(() -> {
260-
GetDatafeedsStatsAction.Request datafeedStatsRequest = new GetDatafeedsStatsAction.Request(datafeedId);
261-
GetDatafeedsStatsAction.Response datafeedStatsResponse =
262-
client().execute(GetDatafeedsStatsAction.INSTANCE, datafeedStatsRequest).actionGet();
263-
assertEquals(DatafeedState.STOPPING, datafeedStatsResponse.getResponse().results().get(0).getDatafeedState());
264-
});
265-
}
250+
// terminated itself. In this happens there is no persistent task to stop
251+
assumeFalse("The datafeed task is null most likely because the datafeed detected the job had failed. " +
252+
"This is expected to happen extremely rarely but the test cannot continue in these circumstances.", task == null);
253+
254+
UpdatePersistentTaskStatusAction.Request updatePersistentTaskStatusRequest =
255+
new UpdatePersistentTaskStatusAction.Request(task.getId(), task.getAllocationId(), DatafeedState.STOPPING);
256+
PersistentTaskResponse updatePersistentTaskStatusResponse =
257+
client().execute(UpdatePersistentTaskStatusAction.INSTANCE, updatePersistentTaskStatusRequest).actionGet();
258+
assertNotNull(updatePersistentTaskStatusResponse.getTask());
259+
260+
// Confirm the datafeed state is now stopping - this may take a while to update in cluster state
261+
assertBusy(() -> {
262+
GetDatafeedsStatsAction.Request datafeedStatsRequest = new GetDatafeedsStatsAction.Request(datafeedId);
263+
GetDatafeedsStatsAction.Response datafeedStatsResponse =
264+
client().execute(GetDatafeedsStatsAction.INSTANCE, datafeedStatsRequest).actionGet();
265+
assertEquals(DatafeedState.STOPPING, datafeedStatsResponse.getResponse().results().get(0).getDatafeedState());
266+
});
267+
266268

267269
// Stop the node running the failed job/stopping datafeed
268270
ensureGreen(); // replicas must be assigned, otherwise we could lose a whole index

0 commit comments

Comments
 (0)