diff options
4 files changed, 16 insertions, 7 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/TimeoutBudget.java b/configserver/src/main/java/com/yahoo/vespa/config/server/TimeoutBudget.java index 659662ebcf6..fa30fa3561a 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/TimeoutBudget.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/TimeoutBudget.java @@ -25,6 +25,10 @@ public class TimeoutBudget { this.endTime = startTime.plus(duration); } + public Duration timeout() { + return Duration.between(startTime, endTime); + } + public Duration timeLeft() { Instant now = clock.instant(); measurements.add(new Measurement(now)); diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/SessionsMaintainer.java b/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/SessionsMaintainer.java index ed526908f6f..0be81e41d30 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/SessionsMaintainer.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/SessionsMaintainer.java @@ -28,12 +28,12 @@ public class SessionsMaintainer extends ConfigServerMaintainer { applicationRepository.deleteExpiredLocalSessions(); if (hostedVespa) { - Duration expiryTime = Duration.ofHours(2); + Duration expiryTime = Duration.ofMinutes(90); int deleted = applicationRepository.deleteExpiredRemoteSessions(expiryTime); log.log(LogLevel.FINE, () -> "Deleted " + deleted + " expired remote sessions older than " + expiryTime); } - Duration lockExpiryTime = Duration.ofHours(2); + Duration lockExpiryTime = Duration.ofMinutes(90); int deleted = applicationRepository.deleteExpiredSessionLocks(lockExpiryTime); log.log(LogLevel.FINE, () -> "Deleted " + deleted + " locks older than " + lockExpiryTime); diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java index 2dea02705c4..a16d3d0c221 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java @@ -28,6 +28,7 @@ import com.yahoo.container.jdisc.secretstore.SecretStore; import com.yahoo.lang.SettableOptional; import com.yahoo.path.Path; import com.yahoo.vespa.config.server.ConfigServerSpec; +import com.yahoo.vespa.config.server.TimeoutBudget; import com.yahoo.vespa.config.server.application.ApplicationSet; import com.yahoo.vespa.config.server.application.PermanentApplicationPackage; import com.yahoo.vespa.config.server.configchange.ConfigChangeActions; @@ -234,9 +235,11 @@ public class SessionPreparer { } void checkTimeout(String step) { - if (! params.getTimeoutBudget().hasTimeLeft(step)) { - String used = params.getTimeoutBudget().timesUsed(); - throw new RuntimeException("prepare timed out " + used + " after " + step + " step: " + applicationId); + TimeoutBudget timeoutBudget = params.getTimeoutBudget(); + if (! timeoutBudget.hasTimeLeft(step)) { + String used = timeoutBudget.timesUsed(); + throw new RuntimeException("prepare timed out " + used + " after " + step + + " step (timeout " + timeoutBudget.timeout() + "): " + applicationId); } } @@ -343,7 +346,7 @@ public class SessionPreparer { ZooKeeperDeployer zkDeployer = zooKeeperClient.createDeployer(deployLogger); try { zkDeployer.deploy(applicationPackage, fileRegistryMap, allocatedHosts); - // Note: When changing the below you need to also change similar calls in SessionFactoryImpl.createSessionFromExisting() + // Note: When changing the below you need to also change similar calls in SessionRepository.createSessionFromExisting() zooKeeperClient.writeApplicationId(applicationId); if (distributeApplicationPackage.value()) zooKeeperClient.writeApplicationPackageReference(distributedApplicationPackage); zooKeeperClient.writeVespaVersion(vespaVersion); diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRepositoryMaintenance.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRepositoryMaintenance.java index a5482281ef1..0890908dc80 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRepositoryMaintenance.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRepositoryMaintenance.java @@ -182,7 +182,9 @@ public class NodeRepositoryMaintenance extends AbstractComponent { provisionedExpiry = Duration.ofHours(4); rebalancerInterval = Duration.ofMinutes(40); redeployMaintainerInterval = Duration.ofMinutes(1); - reservationExpiry = Duration.ofMinutes(15); // Need to be long enough for deployment to be finished for all config model versions + // Need to be long enough for deployment to be finished for all config model versions + // Should be equal to timeout for deployments + reservationExpiry = zone.system().isCd() ? Duration.ofMinutes(5) : Duration.ofMinutes(30); scalingSuggestionsInterval = Duration.ofMinutes(31); spareCapacityMaintenanceInterval = Duration.ofMinutes(10); throttlePolicy = NodeFailer.ThrottlePolicy.hosted; |