aboutsummaryrefslogtreecommitdiffstats
path: root/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/StateChangeTest.java
diff options
context:
space:
mode:
authorTor Brede Vekterli <vekterli@yahoo-inc.com>2017-09-19 17:18:27 +0200
committerTor Brede Vekterli <vekterli@yahoo-inc.com>2017-09-19 17:18:27 +0200
commitb9e23296d4b7c36f910054f8d073f0ebef925c23 (patch)
tree0ba791793bd5f7085d6c4e51efc105bc68648938 /clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/StateChangeTest.java
parentd825bb328c94e138ea87301282c85cc4edb5e585 (diff)
Immediately complete remote tasks when not leader
Avoids edge case where set-node-state requests sent to followers would have their response delayed indefinitely due to controller not publishing any versions that the task's ACK barrier could be released by.
Diffstat (limited to 'clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/StateChangeTest.java')
-rw-r--r--clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/StateChangeTest.java15
1 files changed, 15 insertions, 0 deletions
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 49cfe8bd3b6..6a8ffae8f3f 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
@@ -1508,4 +1508,19 @@ public class StateChangeTest extends FleetControllerTest {
assertTrue(task.isCompleted());
}
+ @Test
+ public void synchronous_task_immediately_answered_when_not_leader() throws Exception {
+ FleetControllerOptions options = optionsWithZeroTransitionTime();
+ options.fleetControllerCount = 3;
+ RemoteTaskFixture fixture = createFixtureWith(options);
+
+ fixture.loseLeadership();
+ markAllNodesAsUp(options);
+
+ MockTask task = fixture.scheduleVersionDependentTaskWithSideEffects();
+
+ assertTrue(task.isInvoked());
+ assertTrue(task.isCompleted());
+ }
+
}