diff options
author | Harald Musum <musum@verizonmedia.com> | 2021-12-01 22:14:36 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-01 22:14:36 +0100 |
commit | 7b38fe9d9825a20fd00176497e76a7a46caafe81 (patch) | |
tree | b2c3ad53555afb245dd14e0ad192cd4244b26066 /configserver/src/main | |
parent | 8e847a9822b8d3c28e332d3dd0e61b759b434162 (diff) |
Revert "Revert "Make sure to consider all sessions in zookeeper when deleting [run-systemtest]""
Diffstat (limited to 'configserver/src/main')
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionRepository.java | 13 |
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; } |