summaryrefslogtreecommitdiffstats
path: root/configserver
diff options
context:
space:
mode:
authorjonmv <venstad@gmail.com>2024-01-14 19:14:11 +0100
committerjonmv <venstad@gmail.com>2024-01-14 19:14:11 +0100
commit8855dba54d028c32b6f2be535f5ff19a8d5b4c2f (patch)
tree535f62bfef485dba0718bef33cb0fdfe1e5b4f72 /configserver
parent0d27096cc4af0df33498f7402015b6dea6ee0338 (diff)
Read under lock, to ensure up-to-date data
Diffstat (limited to 'configserver')
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/application/ApplicationCuratorDatabase.java8
1 files changed, 5 insertions, 3 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/application/ApplicationCuratorDatabase.java b/configserver/src/main/java/com/yahoo/vespa/config/server/application/ApplicationCuratorDatabase.java
index b2dbea569b6..0493a8b3c37 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/application/ApplicationCuratorDatabase.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/application/ApplicationCuratorDatabase.java
@@ -200,9 +200,11 @@ public class ApplicationCuratorDatabase {
}
public PendingRestarts readPendingRestarts(ApplicationId id) {
- return curator.getData(pendingRestartsPath(id))
- .map(PendingRestartsSerializer::fromBytes)
- .orElse(PendingRestarts.empty());
+ try (Lock lock = curator.lock(restartsLockPath(id), Duration.ofMinutes(1))) {
+ return curator.getData(pendingRestartsPath(id))
+ .map(PendingRestartsSerializer::fromBytes)
+ .orElse(PendingRestarts.empty());
+ }
}
public void modifyPendingRestarts(ApplicationId id, UnaryOperator<PendingRestarts> modification) {