Further attempt at capturing reaper error logs

This commit is contained in:
Mark Vieira 2022-08-02 14:47:43 -07:00
parent d2f99f5baf
commit 9e9f19bc9c
3 changed files with 7 additions and 6 deletions

View file

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

View file

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

View file

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