Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -90,8 +90,6 @@ public void testDataNodeRestart() throws Exception {
.mapToObj(i -> client().prepareIndex("test", "doc", String.valueOf(i)).setSource("data", i)).collect(Collectors.toList()));

ensureGreen("test");
String reindexNode = internalCluster().startCoordinatingOnlyNode(Settings.EMPTY);
NodeClient reindexNodeClient = internalCluster().getInstance(NodeClient.class, reindexNode);

ReindexRequest reindexRequest = new ReindexRequest();
reindexRequest.setSourceIndices("test").setSourceBatchSize(1);
Expand All @@ -106,12 +104,12 @@ public void testDataNodeRestart() throws Exception {

TaskId taskId = new TaskId(response.getTaskId());

Set<String> names = Arrays.stream(internalCluster().getNodeNames())
Set<String> reindexNodeNames = Arrays.stream(internalCluster().getNodeNames())
.map(name -> Tuple.tuple(internalCluster().getInstance(NodeClient.class, name).getLocalNodeId(), name))
.filter(idAndName -> taskId.getNodeId().equals(idAndName.v1())).map(Tuple::v2).collect(Collectors.toSet());

assertEquals(1, names.size());
String notToRestart = names.iterator().next();
assertEquals(1, reindexNodeNames.size());
String notToRestart = reindexNodeNames.iterator().next();

internalCluster().getInstances(NodeClient.class);
assertBusy(() -> {
Expand All @@ -123,19 +121,21 @@ public void testDataNodeRestart() throws Exception {
assertThat(client().admin().cluster().prepareListTasks().setActions(SearchAction.NAME).get().getTasks(), Matchers.empty());
}, 30, TimeUnit.SECONDS);

Set<String> restartableNodes = internalCluster().nodesInclude("test")
.stream().filter(id -> id.equals(notToRestart) == false).collect(Collectors.toSet());
for (int i = 0; i < randomIntBetween(1,5); ++i) {
// todo: replace following two lines with below once search fails on RED every time.
String nodeToRestart = randomFrom(internalCluster().nodesInclude("test")
.stream().filter(id -> id.equals(notToRestart) == false).collect(Collectors.toSet()));
internalCluster().restartNode(nodeToRestart, new InternalTestCluster.RestartCallback());
ensureGreen();
// internalCluster().restartRandomDataNode(new InternalTestCluster.RestartCallback() {
// @Override
// public Settings onNodeStopped(String nodeName) throws Exception {
// internalCluster().restartRandomDataNode();
// return super.onNodeStopped(nodeName);
// }
// });
String node1ToRestart = randomFrom(restartableNodes);
internalCluster().restartNode(node1ToRestart, new InternalTestCluster.RestartCallback() {
@Override
public Settings onNodeStopped(String nodeName) throws Exception {
if (restartableNodes.size() > 1) {
String node2ToRestart = randomValueOtherThan(node1ToRestart, () -> randomFrom(restartableNodes));
logger.info("--> restarting second node: " + node2ToRestart);
internalCluster().restartNode(node2ToRestart, new InternalTestCluster.RestartCallback());
}
return super.onNodeStopped(nodeName);
}
});
}

rethrottle().setTaskId(taskId)
Expand Down