Disable some `MaybeFailOnceUploadService` assertions when an RPC fails.
If `onNext()` sends a failure, there is little value in trying to assertions in `onComplete()`. Remote tests logs had NPEs and other scary exceptions due to failed assertions in the RPC error case.
Closes #15675.
PiperOrigin-RevId: 457951865
Change-Id: Id41a7b341334fa5ba7eb6a2abc188c85931ba50b
diff --git a/src/test/java/com/google/devtools/build/lib/remote/ByteStreamUploaderTest.java b/src/test/java/com/google/devtools/build/lib/remote/ByteStreamUploaderTest.java
index f67ccc3..96263c0 100644
--- a/src/test/java/com/google/devtools/build/lib/remote/ByteStreamUploaderTest.java
+++ b/src/test/java/com/google/devtools/build/lib/remote/ByteStreamUploaderTest.java
@@ -1564,6 +1564,7 @@
private HashCode digestHash;
private byte[] receivedData;
private long nextOffset;
+ private boolean failed;
@Override
public void onNext(WriteRequest writeRequest) {
@@ -1584,6 +1585,7 @@
if (shouldFail) {
uploadsFailedOnce.add(digestHash);
response.onError(Status.INTERNAL.asException());
+ failed = true;
return;
}
@@ -1602,6 +1604,9 @@
@Override
public void onCompleted() {
+ if (failed) {
+ return;
+ }
byte[] expectedBlob = blobsByHash.get(digestHash);
assertThat(receivedData).isEqualTo(expectedBlob);