Skip to content

Commit ecef641

Browse files
authored
Use assertBusy for task unregistration events (#96347)
I think this also relates to reversing the order of sending response and unregistration in #94865. Closes #96103
1 parent 3c3c14f commit ecef641

File tree

1 file changed

+7
-3
lines changed
  • server/src/internalClusterTest/java/org/elasticsearch/action/admin/cluster/node/tasks

1 file changed

+7
-3
lines changed

server/src/internalClusterTest/java/org/elasticsearch/action/admin/cluster/node/tasks/TasksIT.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -132,20 +132,24 @@ public void testTaskCounts() {
132132
assertThat(response.getTasks().size(), greaterThanOrEqualTo(cluster().numDataNodes()));
133133
}
134134

135-
public void testMasterNodeOperationTasks() {
135+
public void testMasterNodeOperationTasks() throws Exception {
136136
registerTaskManagerListeners(ClusterHealthAction.NAME);
137137

138138
// First run the health on the master node - should produce only one task on the master node
139139
internalCluster().masterClient().admin().cluster().prepareHealth().get();
140140
assertEquals(1, numberOfEvents(ClusterHealthAction.NAME, Tuple::v1)); // counting only registration events
141-
assertEquals(1, numberOfEvents(ClusterHealthAction.NAME, event -> event.v1() == false)); // counting only unregistration events
141+
// counting only unregistration events
142+
// When checking unregistration events there might be some delay since receiving the response from the cluster doesn't
143+
// guarantee that the task has been unregistered.
144+
assertBusy(() -> assertEquals(1, numberOfEvents(ClusterHealthAction.NAME, event -> event.v1() == false)));
142145

143146
resetTaskManagerListeners(ClusterHealthAction.NAME);
144147

145148
// Now run the health on a non-master node - should produce one task on master and one task on another node
146149
internalCluster().nonMasterClient().admin().cluster().prepareHealth().get();
147150
assertEquals(2, numberOfEvents(ClusterHealthAction.NAME, Tuple::v1)); // counting only registration events
148-
assertEquals(2, numberOfEvents(ClusterHealthAction.NAME, event -> event.v1() == false)); // counting only unregistration events
151+
// counting only unregistration events
152+
assertBusy(() -> assertEquals(2, numberOfEvents(ClusterHealthAction.NAME, event -> event.v1() == false)));
149153
List<TaskInfo> tasks = findEvents(ClusterHealthAction.NAME, Tuple::v1);
150154

151155
// Verify that one of these tasks is a parent of another task

0 commit comments

Comments
 (0)