diff options
author | Arne Juul <arnej@yahoo-inc.com> | 2017-09-22 10:37:49 +0000 |
---|---|---|
committer | Arne Juul <arnej@yahoo-inc.com> | 2017-09-22 10:37:49 +0000 |
commit | 5767d9b188cd3efadbd30e2decd963c0d168fdbc (patch) | |
tree | 6ba9f61ce8d24ea8b5707aa21bb6600f8d08e84f /clustercontroller-core | |
parent | c9f97f7effb5fcd2a8ffe620258cd5629fb7dc73 (diff) | |
parent | f4a65c8f7cb27bd0e449d99e223ba1a0d9135049 (diff) |
Merge branch 'master' into bratseth/nonfunctional-changes-4
Conflicts:
vespajlib/src/main/java/com/yahoo/concurrent/lock/Locks.java
Diffstat (limited to 'clustercontroller-core')
4 files changed, 23 insertions, 4 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 0b0653274a4..120b482e11d 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 @@ -665,7 +665,8 @@ public class FleetController implements NodeStateOrHostInfoChangeHandler, NodeAd final RemoteClusterControllerTask task = remoteTasks.poll(); log.finest(() -> String.format("Processing remote task of type '%s'", task.getClass().getName())); task.doRemoteFleetControllerTask(context); - if (!task.hasVersionAckDependency()) { + // We cannot introduce a version barrier for tasks when we're not the master (and therefore will not publish new versions). + if (!isMaster() || !task.hasVersionAckDependency()) { log.finest(() -> String.format("Done processing remote task of type '%s'", task.getClass().getName())); task.notifyCompleted(); } else { diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/requests/SetNodeStateRequest.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/requests/SetNodeStateRequest.java index c56ce5da352..2c094769961 100644 --- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/requests/SetNodeStateRequest.java +++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/requests/SetNodeStateRequest.java @@ -67,7 +67,9 @@ public class SetNodeStateRequest extends Request<SetResponse> { @Override public boolean hasVersionAckDependency() { - return (this.responseWait == SetUnitStateRequest.ResponseWait.WAIT_UNTIL_CLUSTER_ACKED); + // FIXME this is a temporary change while edge cases in interactions between controller + // and orchestration are sorted out. + return false; } static SetResponse setWantedState( 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()); + } + } diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/SetNodeStateTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/SetNodeStateTest.java index 88483e47f4e..0f35b96c31d 100644 --- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/SetNodeStateTest.java +++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/SetNodeStateTest.java @@ -374,10 +374,11 @@ public class SetNodeStateTest extends StateRestApiTest { .setNewState("user", "maintenance", "whatever reason.")); } + // FIXME requests should be tagged as version dependent; temporary workaround @Test - public void set_node_state_requests_are_by_default_tagged_as_having_version_ack_dependency() { + public void set_node_state_requests_are_by_default_not_tagged_as_having_version_ack_dependency() { SetNodeStateRequest request = createDummySetNodeStateRequest(); - assertTrue(request.hasVersionAckDependency()); + assertFalse(request.hasVersionAckDependency()); } @Test |