diff options
author | Valerij Fredriksen <freva@users.noreply.github.com> | 2018-10-29 09:15:19 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-10-29 09:15:19 +0100 |
commit | 1794069cc28286f7fa0602a6d8e38d346808836d (patch) | |
tree | ab4fe11bd65732370465d2bd40463e9d2a5958be /node-admin | |
parent | 1c98a62192ac9b86c027b49543d98706a3ed41f2 (diff) | |
parent | cf0967374c42de1e7cc297df2a98d20134866c85 (diff) |
Merge pull request #7460 from vespa-engine/freva/increase-lz4-timeout
Coredump fixes
Diffstat (limited to 'node-admin')
2 files changed, 13 insertions, 2 deletions
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"); |