summaryrefslogtreecommitdiffstats
path: root/clustercontroller-core
diff options
context:
space:
mode:
authorTor Brede Vekterli <vekterli@yahoo-inc.com>2017-09-11 16:02:18 +0200
committerTor Brede Vekterli <vekterli@yahoo-inc.com>2017-09-11 16:02:18 +0200
commit96d3f5543a9ec7926a30411e8ab0dcb34cc56eb8 (patch)
treeaa8238435e639ceb365dedad5e205a3908a1f81c /clustercontroller-core
parent93b82bf55a88fd049e4f384d3a50c5859adcaec2 (diff)
Test multiple scheduled synchronous tasks
Diffstat (limited to 'clustercontroller-core')
-rw-r--r--clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetController.java2
-rw-r--r--clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/StateChangeTest.java18
2 files changed, 19 insertions, 1 deletions
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetController.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetController.java
index 7d579d241b7..31fa5635c42 100644
--- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetController.java
+++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetController.java
@@ -692,7 +692,7 @@ public class FleetController implements NodeStateOrHostInfoChangeHandler, NodeAd
while (!taskCompletionQueue.isEmpty()) {
VersionDependentTaskCompletion taskCompletion = taskCompletionQueue.peek();
if (publishedVersion >= taskCompletion.getMinimumVersion()) {
- log.info(() -> String.format("Deferred task of type '%s' has minimum version %d, published is %d; completing",
+ log.fine(() -> String.format("Deferred task of type '%s' has minimum version %d, published is %d; completing",
taskCompletion.getTask().getClass().getName(), taskCompletion.getMinimumVersion(), publishedVersion));
taskCompletion.getTask().notifyCompleted();
taskCompletionQueue.remove();
diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/StateChangeTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/StateChangeTest.java
index 24cecd4f5b6..a452a85c870 100644
--- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/StateChangeTest.java
+++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/StateChangeTest.java
@@ -1447,6 +1447,24 @@ public class StateChangeTest extends FleetControllerTest {
}
@Test
+ public void multiple_tasks_may_be_scheduled_and_answered_at_the_same_time() throws Exception {
+ RemoteTaskFixture fixture = createDefaultFixture();
+ communicator.setShouldDeferDistributorClusterStateAcks(true);
+
+ MockTask task1 = fixture.scheduleNonIdempotentVersionDependentTask();
+ MockTask task2 = fixture.scheduleNonIdempotentVersionDependentTask();
+
+ fixture.processScheduledTask();
+ assertFalse(task1.isCompleted());
+ assertFalse(task2.isCompleted());
+
+ fixture.sendAllDeferredDistributorClusterStateAcks();
+
+ assertTrue(task1.isCompleted());
+ assertTrue(task2.isCompleted());
+ }
+
+ @Test
public void synchronous_task_immediately_failed_when_leadership_lost() throws Exception {
FleetControllerOptions options = optionsWithZeroTransitionTime();
options.fleetControllerCount = 3;