summaryrefslogtreecommitdiffstats
path: root/configserver
diff options
context:
space:
mode:
authorHarald Musum <musum@yahooinc.com>2023-03-03 12:28:33 +0100
committerHarald Musum <musum@yahooinc.com>2023-03-03 12:28:33 +0100
commit198be96c9538306a8ad670d72ce586c65c2a827b (patch)
tree53f44b66e8cf295468927f75dc4f021ccb37db2a /configserver
parent0295dd9d2841c45fb02eb97c8c2e87e4fd9c9120 (diff)
Resolve config when we discover a new config generation is active
Calling configActivated() will end up in going through all delayed responses, putting them on a queue and wait for configs to be resolved. This happens with the same executor that call configActivated() so it might end up in a deadlock. Resolving config immediately instead should avoid this.
Diffstat (limited to 'configserver')
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/rpc/GetConfigProcessor.java4
1 files changed, 2 insertions, 2 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/GetConfigProcessor.java b/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/GetConfigProcessor.java
index 5e7fff8c922..6d1229aedae 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/GetConfigProcessor.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/GetConfigProcessor.java
@@ -155,8 +155,8 @@ class GetConfigProcessor implements Runnable {
rpcServer.delayResponse(request, context);
if (rpcServer.hasNewerGeneration(context.applicationId(), d.generation())) {
// This will ensure that if the config activation train left the station while I was boarding,
- // another train will immediately be scheduled.
- rpcServer.configActivated(context.applicationId());
+ // we will resolve config again with new generation
+ resolveConfig(request);
}
});
}