Просмотр исходного кода

Further attempt at capturing reaper error logs

Mark Vieira 3 лет назад
Родитель
Сommit
9e9f19bc9c

+ 2 - 1
build-tools-internal/src/main/groovy/elasticsearch.build-complete.gradle

@@ -23,7 +23,6 @@ if (buildNumber && performanceTest == null) {
         fileset(dir: projectDir) {
           Set<File> fileSet = fileTree(projectDir) {
             include("**/*.hprof")
-            include(".gradle/reaper/**")
             include("**/build/test-results/**/*.xml")
             include("**/build/testclusters/**")
             exclude("**/build/testclusters/**/data/**")
@@ -49,6 +48,8 @@ if (buildNumber && performanceTest == null) {
         }
 
         fileset(dir: "${gradle.gradleUserHomeDir}/workers", followsymlinks: false)
+
+        fileset(dir: "${project.projectDir}/.gradle/reaper", followsymlinks: false)
       }
     } catch (Exception e) {
       logger.lifecycle("Failed to archive additional logs", e)

+ 3 - 3
build-tools/reaper/src/main/java/org/elasticsearch/gradle/reaper/Reaper.java

@@ -83,17 +83,17 @@ public class Reaper implements Closeable {
                     delete(inputFile);
                 }
             }
-        } catch (Exception e) {
+        } catch (Throwable e) {
+            failed = true;
             logFailure("Failed to reap inputs", e);
         }
     }
 
-    private void logFailure(String message, Exception e) {
+    private void logFailure(String message, Throwable e) {
         System.err.println(message);
         if (e != null) {
             e.printStackTrace(System.err);
         }
-        failed = true;
     }
 
     private void delete(Path toDelete) {

+ 2 - 2
build-tools/src/main/java/org/elasticsearch/gradle/ReaperService.java

@@ -78,7 +78,7 @@ public abstract class ReaperService implements BuildService<ReaperService.Params
                 logger.info("Waiting for reaper to exit normally");
                 if (reaperProcess.waitFor() != 0) {
                     Path inputDir = getParameters().getInputDir().get().getAsFile().toPath();
-                    throw new GradleException("Reaper process failed. Check log at " + inputDir.resolve("error.log") + " for details");
+                    throw new GradleException("Reaper process failed. Check log at " + inputDir.resolve("reaper.log") + " for details");
                 }
             } catch (Exception e) {
                 throw new RuntimeException(e);
@@ -109,7 +109,7 @@ public abstract class ReaperService implements BuildService<ReaperService.Params
                 builder.redirectInput(ProcessBuilder.Redirect.PIPE);
                 File logFile = logFilePath().toFile();
                 builder.redirectOutput(logFile);
-                builder.redirectError(logFile);
+                builder.redirectErrorStream();
                 reaperProcess = builder.start();
             } catch (Exception e) {
                 throw new RuntimeException(e);