diff options
author | 2018-02-20 05:29:19 -0800 | |
---|---|---|
committer | 2018-02-20 05:30:49 -0800 | |
commit | e5c9bdf9919d56b81278ccc131b3393f4b5d72f3 (patch) | |
tree | e85d2ddd2548d638d3f378996fc7f99159757cee /src/main/java/com | |
parent | ba2739462911b85a600e8eaffbdb9336d23ae6d8 (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.java | 1 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/remote/RemoteSpawnRunner.java | 11 |
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( |