diff options
author | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2022-03-11 11:48:04 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-03-11 11:48:04 +0100 |
commit | a4b5d9eb9a40fe53fe3b2786655720bc3faf1058 (patch) | |
tree | 0f2084c8b30ec1a818a5003ff199cad8376cb245 | |
parent | 445f2b8f9b0a80fc6488c7095d5cd9ba8df51b43 (diff) | |
parent | 3da3dca2a0ea9dbec9c1317f2b30c9bca2acfd82 (diff) |
Merge pull request #21647 from vespa-engine/jonmv/shut-down-clustercontroller-before-ZK
Ensure ClusterController shuts down before ZK cluster is uses
-rw-r--r-- | clustercontroller-apps/src/main/java/com/yahoo/vespa/clustercontroller/apps/clustercontroller/ClusterController.java | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/clustercontroller-apps/src/main/java/com/yahoo/vespa/clustercontroller/apps/clustercontroller/ClusterController.java b/clustercontroller-apps/src/main/java/com/yahoo/vespa/clustercontroller/apps/clustercontroller/ClusterController.java index 1eca2d18493..05daa43690c 100644 --- a/clustercontroller-apps/src/main/java/com/yahoo/vespa/clustercontroller/apps/clustercontroller/ClusterController.java +++ b/clustercontroller-apps/src/main/java/com/yahoo/vespa/clustercontroller/apps/clustercontroller/ClusterController.java @@ -11,6 +11,7 @@ import com.yahoo.vespa.clustercontroller.core.RemoteClusterControllerTaskSchedul import com.yahoo.vespa.clustercontroller.core.restapiv2.ClusterControllerStateRestAPI; import com.yahoo.vespa.clustercontroller.core.status.StatusHandler; import com.yahoo.vespa.curator.Curator; +import com.yahoo.vespa.zookeeper.Reconfigurer; import com.yahoo.vespa.zookeeper.VespaZooKeeperServer; import java.util.LinkedHashMap; @@ -31,14 +32,19 @@ public class ClusterController extends AbstractComponent private final Map<String, FleetController> controllers = new TreeMap<>(); private final Map<String, StatusHandler.ContainerStatusPageServer> status = new TreeMap<>(); + ClusterController() { + this(null); + } + /** * Dependency injection constructor for controller. A {@link VespaZooKeeperServer} argument is required * for all its users, to ensure that zookeeper has started before we start polling it, but * should not be injected here, as that causes recreation of the cluster controller, and old and new * will run master election, etc., concurrently, which breaks everything. + * Instead, a {@link Reconfigurer} is injected to ensure this is shutdown before the ZK server owned by that. */ @Inject - public ClusterController() { + public ClusterController(Reconfigurer unused) { metricWrapper = new JDiscMetricWrapper(null); } |