diff options
Diffstat (limited to 'node-admin')
3 files changed, 16 insertions, 5 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 390e81affb2..00dd841efc6 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 @@ -240,10 +240,10 @@ public class StorageMaintainer { } private Map<String, Object> getCoredumpNodeAttributes(NodeAgentContext context, NodeSpec node, Optional<Container> container) { - Map<String, Object> attributes = new HashMap<>(); + Map<String, String> attributes = new HashMap<>(); attributes.put("hostname", node.getHostname()); - attributes.put("region", context.zoneId().regionName()); - attributes.put("environment", context.zoneId().environment()); + attributes.put("region", context.zoneId().regionName().value()); + attributes.put("environment", context.zoneId().environment().value()); attributes.put("flavor", node.getFlavor()); attributes.put("kernel_version", System.getProperty("os.version")); diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/coredump/CoredumpHandler.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/coredump/CoredumpHandler.java index 16037f3233b..a9d61d20f5b 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/coredump/CoredumpHandler.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/coredump/CoredumpHandler.java @@ -11,6 +11,7 @@ import com.yahoo.vespa.hosted.node.admin.task.util.process.Terminal; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; +import java.time.Duration; import java.util.Comparator; import java.util.Map; import java.util.Optional; @@ -19,6 +20,7 @@ import java.util.function.Supplier; import java.util.logging.Logger; import java.util.regex.Pattern; +import static com.yahoo.vespa.hosted.node.admin.task.util.file.FileFinder.nameEndsWith; import static com.yahoo.vespa.hosted.node.admin.task.util.file.FileFinder.nameMatches; import static com.yahoo.vespa.hosted.node.admin.task.util.file.FileFinder.nameStartsWith; import static com.yahoo.vespa.hosted.node.admin.task.util.file.IOExceptionUtil.uncheck; @@ -154,6 +156,7 @@ public class CoredumpHandler { Path compressedCoreFile = coreFile.getParent().resolve(coreFile.getFileName() + ".lz4"); terminal.newCommandLine(context) .add(LZ4_PATH, "-f", coreFile.toString(), compressedCoreFile.toString()) + .setTimeout(Duration.ofMinutes(30)) .execute(); Files.delete(coreFile); @@ -161,9 +164,9 @@ public class CoredumpHandler { Files.move(coredumpDirectory, newCoredumpDirectory); } - private Path findCoredumpFileInProcessingDirectory(Path coredumpProccessingDirectory) { + Path findCoredumpFileInProcessingDirectory(Path coredumpProccessingDirectory) { return FileFinder.files(coredumpProccessingDirectory) - .match(nameStartsWith(COREDUMP_FILENAME_PREFIX)) + .match(nameStartsWith(COREDUMP_FILENAME_PREFIX).and(nameEndsWith(".lz4").negate())) .maxDepth(1) .stream() .map(FileFinder.FileAttributes::path) diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/maintenance/coredump/CoredumpHandlerTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/maintenance/coredump/CoredumpHandlerTest.java index af9e7b39657..8d599660ace 100644 --- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/maintenance/coredump/CoredumpHandlerTest.java +++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/maintenance/coredump/CoredumpHandlerTest.java @@ -162,6 +162,14 @@ public class CoredumpHandlerTest { coredumpHandler.getMetadata(context, fileSystem.getPath("/fake/path"), Collections.emptyMap()); } + @Test(expected = IllegalStateException.class) + public void fails_to_get_core_file_if_only_compressed() throws IOException { + Path coredumpDirectory = fileSystem.getPath("/path/to/coredump/proccessing/id-123"); + Files.createDirectories(coredumpDirectory); + Files.createFile(coredumpDirectory.resolve("dump_bash.core.431.lz4")); + coredumpHandler.findCoredumpFileInProcessingDirectory(coredumpDirectory); + } + @Test public void process_single_coredump_test() throws IOException { Path coredumpDirectory = fileSystem.getPath("/path/to/coredump/proccessing/id-123"); |