aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com
diff options
context:
space:
mode:
authorGravatar olaola <olaola@google.com>2018-02-20 05:29:19 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-02-20 05:30:49 -0800
commite5c9bdf9919d56b81278ccc131b3393f4b5d72f3 (patch)
treee85d2ddd2548d638d3f378996fc7f99159757cee /src/main/java/com
parentba2739462911b85a600e8eaffbdb9336d23ae6d8 (diff)
Propagating whether there was a cache hit in the SpawnResult.
So far, nobody uses it, but I want to start using this field soon. TESTED=unit test RELNOTES: None PiperOrigin-RevId: 186290375
Diffstat (limited to 'src/main/java/com')
-rw-r--r--src/main/java/com/google/devtools/build/lib/remote/RemoteSpawnCache.java1
-rw-r--r--src/main/java/com/google/devtools/build/lib/remote/RemoteSpawnRunner.java11
2 files changed, 7 insertions, 5 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/remote/RemoteSpawnCache.java b/src/main/java/com/google/devtools/build/lib/remote/RemoteSpawnCache.java
index 04977ed157..9808264655 100644
--- a/src/main/java/com/google/devtools/build/lib/remote/RemoteSpawnCache.java
+++ b/src/main/java/com/google/devtools/build/lib/remote/RemoteSpawnCache.java
@@ -126,6 +126,7 @@ final class RemoteSpawnCache implements SpawnCache {
new SpawnResult.Builder()
.setStatus(Status.SUCCESS)
.setExitCode(result.getExitCode())
+ .setCacheHit(true)
.build();
return SpawnCache.success(spawnResult);
}
diff --git a/src/main/java/com/google/devtools/build/lib/remote/RemoteSpawnRunner.java b/src/main/java/com/google/devtools/build/lib/remote/RemoteSpawnRunner.java
index f8ad087902..91b59186d8 100644
--- a/src/main/java/com/google/devtools/build/lib/remote/RemoteSpawnRunner.java
+++ b/src/main/java/com/google/devtools/build/lib/remote/RemoteSpawnRunner.java
@@ -156,7 +156,9 @@ class RemoteSpawnRunner implements SpawnRunner {
+ actionKey.getDigest());
}
try {
- return downloadRemoteResults(cachedResult, policy.getFileOutErr());
+ return downloadRemoteResults(cachedResult, policy.getFileOutErr())
+ .setCacheHit(true)
+ .build();
} catch (CacheNotFoundException e) {
// No cache hit, so we fall through to local or remote execution.
// We set acceptCachedResult to false in order to force the action re-execution.
@@ -193,7 +195,7 @@ class RemoteSpawnRunner implements SpawnRunner {
}
try {
- return downloadRemoteResults(result, policy.getFileOutErr());
+ return downloadRemoteResults(result, policy.getFileOutErr()).build();
} catch (IOException e) {
return execLocallyOrFail(spawn, policy, inputMap, actionKey, uploadLocalResults, e);
}
@@ -202,14 +204,13 @@ class RemoteSpawnRunner implements SpawnRunner {
}
}
- private SpawnResult downloadRemoteResults(ActionResult result, FileOutErr outErr)
+ private SpawnResult.Builder downloadRemoteResults(ActionResult result, FileOutErr outErr)
throws ExecException, IOException, InterruptedException {
remoteCache.download(result, execRoot, outErr);
int exitCode = result.getExitCode();
return new SpawnResult.Builder()
.setStatus(exitCode == 0 ? Status.SUCCESS : Status.NON_ZERO_EXIT)
- .setExitCode(exitCode)
- .build();
+ .setExitCode(exitCode);
}
private SpawnResult execLocallyOrFail(