[7.2.0] Handle operation stream exception in wrapper (#22141)
A literal StatusRuntimeException thrown from a response stream iterator (as an error response to the overall request) should have the same consideration as one thrown from the operation response unwrap. waitExecution requires an additional check for SRE thrown directly from operation stream pop. Existing NOT_FOUNDs that do not pass the inner retry check will similarly be passed through. To detect this NOT_FOUND in test, the actual exception thrown as a result of thenError must be the error response from stream provided by FakeExecutionService. This corrects a number of tests which did not check for explicit exceptions and were relying on UNKNOWN SREs resulting from errors during handling, and removes numerous thenAck()s required to validate tests. Closes #22067. PiperOrigin-RevId: 628094669 Change-Id: I011d2c2321074a1a27dc853f6274ba9ef35f6db6 Commit https://github.com/bazelbuild/bazel/commit/6d79e11a15e59b6d2ef6838efe780f7c0b820387 Co-authored-by:George Gensure <ggensure@lat.ai>
Showing
- src/main/java/com/google/devtools/build/lib/remote/ExperimentalGrpcRemoteExecutor.java 11 additions, 0 deletions...ools/build/lib/remote/ExperimentalGrpcRemoteExecutor.java
- src/test/java/com/google/devtools/build/lib/remote/ExperimentalGrpcRemoteExecutorTest.java 1 addition, 3 deletions.../build/lib/remote/ExperimentalGrpcRemoteExecutorTest.java
- src/test/java/com/google/devtools/build/lib/remote/FakeExecutionService.java 10 additions, 2 deletions...oogle/devtools/build/lib/remote/FakeExecutionService.java
- src/test/java/com/google/devtools/build/lib/remote/GrpcRemoteExecutorTest.java 1 addition, 1 deletion...gle/devtools/build/lib/remote/GrpcRemoteExecutorTest.java
- src/test/java/com/google/devtools/build/lib/remote/GrpcRemoteExecutorTestBase.java 20 additions, 2 deletions...devtools/build/lib/remote/GrpcRemoteExecutorTestBase.java
Please register or sign in to comment