Browse Source

Create a thread dump if ES fails to start in packaging tests (#48932)

Relates to #15385.
Hoping to get some insight on CI failures.
Alpar Torok 6 years ago
parent
commit
77da9c9b1a

+ 10 - 1
qa/os/src/test/java/org/elasticsearch/packaging/test/ArchiveTests.java

@@ -137,7 +137,16 @@ public class ArchiveTests extends PackagingTestCase {
         // cleanup from previous test
         // cleanup from previous test
         rm(installation.config("elasticsearch.keystore"));
         rm(installation.config("elasticsearch.keystore"));
 
 
-        Archives.runElasticsearch(installation, sh);
+        try {
+            Archives.runElasticsearch(installation, sh);
+        } catch (Exception e ){
+            if (Files.exists(installation.home.resolve("elasticsearch.pid"))) {
+                String pid = FileUtils.slurp(installation.home.resolve("elasticsearch.pid")).trim();
+                logger.info("Dumping jstack of elasticsearch processb ({}) that failed to start", pid);
+                sh.runIgnoreExitCode("jstack " + pid);
+            }
+            throw e;
+        }
 
 
         assertTrue("gc logs exist", Files.exists(installation.logs.resolve("gc.log")));
         assertTrue("gc logs exist", Files.exists(installation.logs.resolve("gc.log")));
         ServerUtils.runElasticsearchTests();
         ServerUtils.runElasticsearchTests();