diff options
author | Harald Musum <musum@verizonmedia.com> | 2019-01-30 11:39:50 +0100 |
---|---|---|
committer | Harald Musum <musum@verizonmedia.com> | 2019-01-30 11:39:50 +0100 |
commit | 465382d2221b5547953be218c32c5f3d404ba885 (patch) | |
tree | 82d10a0c101c31b4b733f63eb9c0daf2dd716022 | |
parent | 801b1952ec1bbb057d407070fe548684d336a4ca (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
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/Maintainer.java | 7 | ||||
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/SessionsMaintainer.java | 4 |
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(); } |