summaryrefslogtreecommitdiffstats
path: root/node-admin
diff options
context:
space:
mode:
Diffstat (limited to 'node-admin')
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/StorageMaintainer.java6
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/coredump/CoredumpHandler.java7
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/maintenance/coredump/CoredumpHandlerTest.java8
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");