aboutsummaryrefslogtreecommitdiffstats
path: root/configserver
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2019-01-30 11:39:50 +0100
committerHarald Musum <musum@verizonmedia.com>2019-01-30 11:39:50 +0100
commit465382d2221b5547953be218c32c5f3d404ba885 (patch)
tree82d10a0c101c31b4b733f63eb9c0daf2dd716022 /configserver
parent801b1952ec1bbb057d407070fe548684d336a4ca (diff)
Start sessions maintainer as early as possible
We have seen a couple of times that disk goes full and that a config server will not recover since disk is full and it needs disk space for redeploying applications when starting
Diffstat (limited to 'configserver')
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/Maintainer.java7
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/SessionsMaintainer.java4
2 files changed, 9 insertions, 2 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/Maintainer.java b/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/Maintainer.java
index 513f70e4187..d2fd4efa7dc 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/Maintainer.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/Maintainer.java
@@ -33,13 +33,18 @@ public abstract class Maintainer extends AbstractComponent implements Runnable {
protected final Curator curator;
Maintainer(ApplicationRepository applicationRepository, Curator curator, Duration interval) {
+ this(applicationRepository, curator, interval, interval);
+ }
+
+ Maintainer(ApplicationRepository applicationRepository, Curator curator, Duration initialDelay, Duration interval) {
this.applicationRepository = applicationRepository;
this.curator = curator;
this.maintenanceInterval = interval;
service = new ScheduledThreadPoolExecutor(1, new DaemonThreadFactory(name()));
- service.scheduleAtFixedRate(this, interval.toMillis(), interval.toMillis(), TimeUnit.MILLISECONDS);
+ service.scheduleAtFixedRate(this, initialDelay.toMillis(), interval.toMillis(), TimeUnit.MILLISECONDS);
}
+
@Override
@SuppressWarnings({"try", "unused"})
public void run() {
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 bf9b438f9c6..7da868303e2 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
@@ -17,7 +17,9 @@ public class SessionsMaintainer extends Maintainer {
private final boolean hostedVespa;
SessionsMaintainer(ApplicationRepository applicationRepository, Curator curator, Duration interval) {
- super(applicationRepository, curator, interval);
+ // Start this maintainer immediately. It frees disk space, so if disk goes full and config server
+ // restarts this makes sure that cleanup will happen as early as possible
+ super(applicationRepository, curator, Duration.ZERO, interval);
this.hostedVespa = applicationRepository.configserverConfig().hostedVespa();
}