siso: test what the gRPC service config retries Our REAPI connections carry a gRPC method config that retries RPCs transparently, but nothing exercised it, so it was hard to tell what it really does. Any layer we add on top has to know which codes are already covered, otherwise the two layers multiply their attempts and backoff. Add a test that serves a fake ActionCache over bufconn, dials it with the production DialOptions, and counts attempts on the server. The client makes one call per case, so every extra attempt the server sees comes from gRPC itself. It records the behavior for GetActionResult: Unavailable, then OK 3 attempts, caller sees success Unavailable (persistent) 5 attempts (maxAttempts), then fails Internal (persistent) 5 attempts, then fails DeadlineExceeded 1 attempt, not retried NotFound 1 attempt, not retried maxAttempts counts the original call, so a persistently failing backend is tried 5 times in total. Also drop the "no retry for ActionCache" comment in DialOptions. It sat right above the line that installs the service config, which does retry ActionCache, and the test now shows what the config does instead. Change-Id: I5b3e9c7d1a4f8206e3c9b5d7f1a8e4c62d0b9f37 Reviewed-on: https://chromium-review.googlesource.com/c/build/+/8114148 Reviewed-by: Fumitoshi Ukai <ukai@google.com> Reviewed-by: Yuke Liao <liaoyuke@google.com> Commit-Queue: Philipp Wollermann <philwo@google.com>
This repository contains tools developed and owned by the Chrome Build Team.
The steps for getting the code are:
git clone https://chromium.googlesource.com/buildWe use the standard Go module workflow to work on our projects.