diff options
author | Tor Brede Vekterli <vekterli@yahoo-inc.com> | 2017-09-19 17:18:27 +0200 |
---|---|---|
committer | Tor Brede Vekterli <vekterli@yahoo-inc.com> | 2017-09-19 17:18:27 +0200 |
commit | b9e23296d4b7c36f910054f8d073f0ebef925c23 (patch) | |
tree | 0ba791793bd5f7085d6c4e51efc105bc68648938 /clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/StateChangeTest.java | |
parent | d825bb328c94e138ea87301282c85cc4edb5e585 (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.java | 15 |
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()); + } + } |