diff options
author | 2017-07-07 09:32:53 -0400 | |
---|---|---|
committer | 2017-07-07 13:37:33 -0400 | |
commit | 2936047ae407fdba9ac432694ae8b72ebee4f488 (patch) | |
tree | 2ba946ce0881dafa42f7bbe2257a5419fa23b74f /src/main/java/com/google/devtools/build/lib/analysis/actions | |
parent | ea6ca5a4b7449688675ddd1fab690e5f89eb4a5a (diff) |
Refactor RemoteSpawn{Strategy,Runner}
- Make the RemoteSpawnRunner match RemoteSpawnStrategy functionality, including
local fallback, remote caching, and execution. This is done so we can
actually finish the migration to the SpawnRunner API, for which I've had a
pending change for several months now.
- Never throw StatusRuntimeException from the GrpcRemoteCache or the
GrpcExecutor. We almost never do, since the Retrier catches them implcitly,
so a number of catch blocks were already unreachable. Carefully document
the cases where we still need to handle it.
- RemoteSpawnStrategy / RemoteSpawnRunner no longer catch gRPC-specific
exceptions; they should be able to handle any reasonable remote caching /
execution implementation (except we don't have a common interface for
GrpcRemoteExecutor yet), with no dependency on gRPC as such. Note that the
RemoteSpawnStrategy class will actually go away after the SpawnRunner
migration (eventually).
- However, ensure that we _are_ actually throwing CacheNotFoundException;
the retrier implicitly catches that also, so we need to manually unwrap
from RetryException.
- Don't call into the EventHandler from RemoteSpawnStrategy; instead, throw
an exception with the message, and let the higher levels handle the
reporting (we only allow this for exception + local fallback, for which
there's no good reporting API right now).
PiperOrigin-RevId: 161195666
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis/actions')
0 files changed, 0 insertions, 0 deletions