diff --git a/src/main/java/com/google/devtools/build/lib/remote/RemoteExecutionService.java b/src/main/java/com/google/devtools/build/lib/remote/RemoteExecutionService.java index 314b9f6fb56e25..08026884556d42 100644 --- a/src/main/java/com/google/devtools/build/lib/remote/RemoteExecutionService.java +++ b/src/main/java/com/google/devtools/build/lib/remote/RemoteExecutionService.java @@ -1291,6 +1291,11 @@ private boolean shouldDownload(RemoteActionResult result, PathFragment execPath) if (result.getExitCode() != 0) { return true; } + // An output materialized as a symlink might point to one of the other outputs. + if (!result.getOutputSymlinks().isEmpty() || !result.getOutputFileSymlinks().isEmpty() + || !result.getOutputDirectorySymlinks().isEmpty()) { + return true; + } return remoteOutputChecker.shouldDownloadOutput(execPath); }