summaryrefslogtreecommitdiffstats
path: root/container-disc
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2020-12-16 22:15:52 +0100
committerJon Bratseth <bratseth@gmail.com>2020-12-16 22:15:52 +0100
commitb194c494bc568ced02a98695bc41219b170acf37 (patch)
tree0e22193a21aeddb945663795232066c44fc2e3eb /container-disc
parent99ad735154f1aa3cd40b7d7028c11bf19225d1b3 (diff)
Track explicitly when we are initializing config
Diffstat (limited to 'container-disc')
-rw-r--r--container-disc/src/main/java/com/yahoo/container/jdisc/ConfiguredApplication.java12
1 files changed, 6 insertions, 6 deletions
diff --git a/container-disc/src/main/java/com/yahoo/container/jdisc/ConfiguredApplication.java b/container-disc/src/main/java/com/yahoo/container/jdisc/ConfiguredApplication.java
index f266e3782ef..a30bcaa82e1 100644
--- a/container-disc/src/main/java/com/yahoo/container/jdisc/ConfiguredApplication.java
+++ b/container-disc/src/main/java/com/yahoo/container/jdisc/ConfiguredApplication.java
@@ -133,7 +133,7 @@ public final class ConfiguredApplication implements Application {
@Override
public void start() {
- qrConfig = getConfig(QrConfig.class);
+ qrConfig = getConfig(QrConfig.class, true);
hackToInitializeServer(qrConfig);
@@ -182,7 +182,7 @@ public final class ConfiguredApplication implements Application {
slobrokList = slobrokConfigSubscriber.get().getSlobroks();
} else {
slobrokList = new SlobrokList();
- SlobroksConfig slobrokConfig = getConfig(SlobroksConfig.class);
+ SlobroksConfig slobrokConfig = getConfig(SlobroksConfig.class, true);
slobrokList.setup(slobrokConfig.slobrok().stream().map(SlobroksConfig.Slobrok::connectionspec).toArray(String[]::new));
}
return slobrokList;
@@ -207,10 +207,10 @@ public final class ConfiguredApplication implements Application {
}
}
- private <T extends ConfigInstance> T getConfig(Class<T> configClass) {
+ private <T extends ConfigInstance> T getConfig(Class<T> configClass, boolean isInitializing) {
Subscriber subscriber = subscriberFactory.getSubscriber(Collections.singleton(new ConfigKey<>(configClass, configId)));
try {
- subscriber.waitNextGeneration();
+ subscriber.waitNextGeneration(isInitializing);
return configClass.cast(first(subscriber.config().values()));
} finally {
subscriber.close();
@@ -221,7 +221,7 @@ public final class ConfiguredApplication implements Application {
Subscriber subscriber = subscriberFactory.getSubscriber(Collections.singleton(new ConfigKey<>(QrConfig.class, configId)));
try {
while (true) {
- subscriber.waitNextGeneration();
+ subscriber.waitNextGeneration(false);
QrConfig newConfig = QrConfig.class.cast(first(subscriber.config().values()));
if (qrConfig.rpc().port() != newConfig.rpc().port()) {
com.yahoo.protect.Process.logAndDie(
@@ -264,7 +264,7 @@ public final class ConfiguredApplication implements Application {
ContainerBuilder builder = createBuilderWithGuiceBindings();
// Block until new config arrives, and it should be applied
- configurer.getNewComponentGraph(builder.guiceModules().activate());
+ configurer.getNewComponentGraph(builder.guiceModules().activate(), false);
initializeAndActivateContainer(builder);
} catch (ConfigInterruptedException e) {
break;