aboutsummaryrefslogtreecommitdiffstats
path: root/node-admin
diff options
context:
space:
mode:
authorValerij Fredriksen <valerijf@verizonmedia.com>2020-11-10 16:57:11 +0100
committerValerij Fredriksen <valerijf@verizonmedia.com>2020-11-10 16:57:11 +0100
commita2b9edb84d07d9ebeee1c84e752c8ae9fe024497 (patch)
tree53f38ba5daae8ad753c5e8881aa518b565add2cc /node-admin
parent615ae184cdf79ac893b1179aa2f9a8a56eede205 (diff)
Fix java heap dump metadata
Diffstat (limited to 'node-admin')
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/coredump/CoreCollector.java8
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/maintenance/coredump/CoreCollectorTest.java3
2 files changed, 7 insertions, 4 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/coredump/CoreCollector.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/coredump/CoreCollector.java
index db9460ee07a..8d47abe3c66 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/coredump/CoreCollector.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/coredump/CoreCollector.java
@@ -24,11 +24,13 @@ import java.util.regex.Pattern;
public class CoreCollector {
private static final Logger logger = Logger.getLogger(CoreCollector.class.getName());
- private static final Pattern JAVA_HEAP_DUMP_PATTERN = Pattern.compile("java_pid.*\\.hprof");
+ private static final Pattern JAVA_HEAP_DUMP_PATTERN = Pattern.compile("java_pid.*\\.hprof$");
private static final Pattern CORE_GENERATOR_PATH_PATTERN = Pattern.compile("^Core was generated by `(?<path>.*?)'.$");
private static final Pattern EXECFN_PATH_PATTERN = Pattern.compile("^.* execfn: '(?<path>.*?)'");
private static final Pattern FROM_PATH_PATTERN = Pattern.compile("^.* from '(?<path>.*?)'");
static final String GDB_PATH = "/opt/rh/devtoolset-9/root/bin/gdb";
+ static final Map<String, Object> JAVA_HEAP_DUMP_METADATA =
+ Map.of("bin_path", "java", "backtrace", "Heap dump, no backtrace available");
private final ContainerOperations docker;
@@ -102,8 +104,8 @@ public class CoreCollector {
* @return map of relevant metadata about the core dump
*/
Map<String, Object> collect(NodeAgentContext context, Path coredumpPath) {
- if (JAVA_HEAP_DUMP_PATTERN.matcher(coredumpPath.getFileName().toString()).matches())
- return Map.of("bin_path", "java");
+ if (JAVA_HEAP_DUMP_PATTERN.matcher(coredumpPath.getFileName().toString()).find())
+ return JAVA_HEAP_DUMP_METADATA;
Map<String, Object> data = new HashMap<>();
try {
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/maintenance/coredump/CoreCollectorTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/maintenance/coredump/CoreCollectorTest.java
index 9f8f8953424..2827e99c697 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/maintenance/coredump/CoreCollectorTest.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/maintenance/coredump/CoreCollectorTest.java
@@ -13,6 +13,7 @@ import java.util.List;
import java.util.Map;
import static com.yahoo.vespa.hosted.node.admin.maintenance.coredump.CoreCollector.GDB_PATH;
+import static com.yahoo.vespa.hosted.node.admin.maintenance.coredump.CoreCollector.JAVA_HEAP_DUMP_METADATA;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
import static org.mockito.Mockito.mock;
@@ -163,7 +164,7 @@ public class CoreCollectorTest {
@Test
public void metadata_for_java_heap_dump() {
- assertEquals(Map.of("bin_path", "java"), coreCollector.collect(context, Paths.get("java_pid123.hprof")));
+ assertEquals(JAVA_HEAP_DUMP_METADATA, coreCollector.collect(context, Paths.get("dump_java_pid123.hprof")));
}
private void mockExec(String[] cmd, String output) {