aboutsummaryrefslogtreecommitdiffstats
path: root/configserver
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2021-12-01 22:14:36 +0100
committerGitHub <noreply@github.com>2021-12-01 22:14:36 +0100
commit7b38fe9d9825a20fd00176497e76a7a46caafe81 (patch)
treeb2c3ad53555afb245dd14e0ad192cd4244b26066 /configserver
parent8e847a9822b8d3c28e332d3dd0e61b759b434162 (diff)
Revert "Revert "Make sure to consider all sessions in zookeeper when deleting [run-systemtest]""
Diffstat (limited to 'configserver')
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionRepository.java13
1 files changed, 11 insertions, 2 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionRepository.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionRepository.java
index 95be59e4d26..d6d7de70ebc 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionRepository.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionRepository.java
@@ -346,16 +346,25 @@ public class SessionRepository {
}
public int deleteExpiredRemoteSessions(Clock clock, Duration expiryTime) {
+ List<Long> remoteSessionsFromZooKeeper = getRemoteSessionsFromZooKeeper();
+ log.log(Level.FINE, () -> "Remote sessions for tenant " + tenantName + ": " + remoteSessionsFromZooKeeper);
+
int deleted = 0;
- for (long sessionId : getRemoteSessionsFromZooKeeper()) {
+ for (long sessionId : remoteSessionsFromZooKeeper) {
Session session = remoteSessionCache.get(sessionId);
- if (session == null) continue; // Internal sessions not in sync with zk, continue
+ if (session == null) {
+ log.log(Level.FINE, () -> "Remote session " + sessionId + " is null, creating a new one");
+ session = new RemoteSession(tenantName, sessionId, createSessionZooKeeperClient(sessionId));
+ }
if (session.getStatus() == Session.Status.ACTIVATE) continue;
if (sessionHasExpired(session.getCreateTime(), expiryTime, clock)) {
log.log(Level.FINE, () -> "Remote session " + sessionId + " for " + tenantName + " has expired, deleting it");
deleteRemoteSessionFromZooKeeper(session);
deleted++;
}
+ // Avoid deleting too many in one run
+ if (deleted > 100)
+ break;
}
return deleted;
}