diff options
author | Valerij Fredriksen <valerijf@oath.com> | 2018-08-10 15:39:40 +0200 |
---|---|---|
committer | Valerij Fredriksen <valerij92@gmail.com> | 2018-08-10 17:49:43 +0200 |
commit | d2bffed3503fd58099e80c4155d635500492375a (patch) | |
tree | b76491979b2bcca349646ffa41322bb204de7cc3 /node-admin | |
parent | 86139ca05e67c56dfdee0399c4ebc157903f47ea (diff) |
Remove coredump handling throttling
Diffstat (limited to 'node-admin')
4 files changed, 10 insertions, 45 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/StorageMaintainer.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/StorageMaintainer.java index c83b454db15..7d3c6eb5a95 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/StorageMaintainer.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/StorageMaintainer.java @@ -291,10 +291,8 @@ public class StorageMaintainer { /** * Checks if container has any new coredumps, reports and archives them if so - * - * @param force Set to true to bypass throttling */ - public void handleCoreDumpsForContainer(ContainerName containerName, NodeSpec node, boolean force) { + public void handleCoreDumpsForContainer(ContainerName containerName, NodeSpec node) { // Sample number of coredumps on the host try (Stream<Path> files = Files.list(environment.pathInNodeAdminToDoneCoredumps())) { numberOfCoredumpsOnHost.sample(files.count()); @@ -302,14 +300,9 @@ public class StorageMaintainer { // Ignore for now - this is either test or a misconfiguration } - // Return early if throttled - if (! getMaintenanceThrottlerFor(containerName).shouldHandleCoredumpsNow() && !force) return; - MaintainerExecutor maintainerExecutor = new MaintainerExecutor(); addHandleCoredumpsCommand(maintainerExecutor, containerName, node); maintainerExecutor.execute(); - - getMaintenanceThrottlerFor(containerName).updateNextHandleCoredumpsTime(); } /** @@ -513,7 +506,6 @@ public class StorageMaintainer { private class MaintenanceThrottler { private Instant nextRemoveOldFilesAt = Instant.EPOCH; - private Instant nextHandleOldCoredumpsAt = Instant.EPOCH; void updateNextRemoveOldFilesTime() { nextRemoveOldFilesAt = clock.instant().plus(Duration.ofHours(1)); @@ -523,17 +515,8 @@ public class StorageMaintainer { return !nextRemoveOldFilesAt.isAfter(clock.instant()); } - void updateNextHandleCoredumpsTime() { - nextHandleOldCoredumpsAt = clock.instant().plus(Duration.ofMinutes(5)); - } - - boolean shouldHandleCoredumpsNow() { - return !nextHandleOldCoredumpsAt.isAfter(clock.instant()); - } - void reset() { nextRemoveOldFilesAt = Instant.EPOCH; - nextHandleOldCoredumpsAt = Instant.EPOCH; } } } diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java index 8a4b1208e1f..c84fe157cd3 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java @@ -476,7 +476,7 @@ public class NodeAgentImpl implements NodeAgent { updateNodeRepoWithCurrentAttributes(node); break; case active: - storageMaintainer.handleCoreDumpsForContainer(containerName, node, false); + storageMaintainer.handleCoreDumpsForContainer(containerName, node); storageMaintainer.getDiskUsageFor(containerName) .map(diskUsage -> (double) diskUsage / BYTES_IN_GB / node.getMinDiskAvailableGb()) @@ -490,7 +490,6 @@ public class NodeAgentImpl implements NodeAgent { } container = removeContainerIfNeededUpdateContainerState(node, container); if (! container.isPresent()) { - storageMaintainer.handleCoreDumpsForContainer(containerName, node, false); containerState = STARTING; startContainer(node); containerState = UNKNOWN; diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/StorageMaintainerMock.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/StorageMaintainerMock.java index 1f4cd02f443..6b7d545c286 100644 --- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/StorageMaintainerMock.java +++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/StorageMaintainerMock.java @@ -30,7 +30,7 @@ public class StorageMaintainerMock extends StorageMaintainer { } @Override - public void handleCoreDumpsForContainer(ContainerName containerName, NodeSpec node, boolean force) { + public void handleCoreDumpsForContainer(ContainerName containerName, NodeSpec node) { } @Override diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/maintenance/StorageMaintainerTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/maintenance/StorageMaintainerTest.java index 7e6cc6b773f..627517b824e 100644 --- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/maintenance/StorageMaintainerTest.java +++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/maintenance/StorageMaintainerTest.java @@ -92,39 +92,22 @@ public class StorageMaintainerTest { storageMaintainer.removeOldFilesFromNode(containerName); verifyProcessExecuterCalled(1); - // Coredump handler has its own throttler - storageMaintainer.handleCoreDumpsForContainer(containerName, node, false); - verifyProcessExecuterCalled(2); - - clock.advance(Duration.ofMinutes(61)); storageMaintainer.removeOldFilesFromNode(containerName); - verifyProcessExecuterCalled(3); + verifyProcessExecuterCalled(2); - storageMaintainer.handleCoreDumpsForContainer(containerName, node, false); - verifyProcessExecuterCalled(4); + // Coredump handling is unthrottled + storageMaintainer.handleCoreDumpsForContainer(containerName, node); + verifyProcessExecuterCalled(3); - storageMaintainer.handleCoreDumpsForContainer(containerName, node, false); + storageMaintainer.handleCoreDumpsForContainer(containerName, node); verifyProcessExecuterCalled(4); - storageMaintainer.handleCoreDumpsForContainer(containerName, node, true); - verifyProcessExecuterCalled(5); - - storageMaintainer.handleCoreDumpsForContainer(containerName, node, true); - verifyProcessExecuterCalled(6); - - storageMaintainer.handleCoreDumpsForContainer(containerName, node, false); - verifyProcessExecuterCalled(6); - - // cleanupNodeStorage is unthrottled and it should reset previous times storageMaintainer.cleanupNodeStorage(containerName, node); - verifyProcessExecuterCalled(7); + verifyProcessExecuterCalled(5); storageMaintainer.cleanupNodeStorage(containerName, node); - verifyProcessExecuterCalled(8); - - storageMaintainer.handleCoreDumpsForContainer(containerName, node, false); - verifyProcessExecuterCalled(9); + verifyProcessExecuterCalled(6); } @Test |