Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CANCELLED: Cancelled by user exception with bazel 6.0.0 and a remote cache via grpc #17298

Closed
nickbreen opened this issue Jan 23, 2023 · 6 comments
Assignees
Labels
P2 We'll consider working on this in future. (Assignee optional) team-Remote-Exec Issues and PRs for the Execution (Remote) team type: bug

Comments

@nickbreen
Copy link

nickbreen commented Jan 23, 2023

Description of the bug:

java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: Cancelled by user
	at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$uploadActionResult$10(GrpcCacheClient.java:295)
	at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
	at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
	at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.common.util.concurrent.SettableFuture.setException(SettableFuture.java:55)
	at com.google.devtools.build.lib.remote.util.RxFutures$2.onError(RxFutures.java:257)
	at io.reactivex.rxjava3.internal.operators.single.SingleFlatMap$SingleFlatMapCallback$FlatMapSingleObserver.onError(SingleFlatMap.java:117)
	at io.reactivex.rxjava3.internal.operators.single.SingleUsing$UsingSingleObserver.onError(SingleUsing.java:180)
	at io.reactivex.rxjava3.internal.operators.single.SingleCreate$Emitter.tryOnError(SingleCreate.java:95)
	at io.reactivex.rxjava3.internal.operators.single.SingleCreate$Emitter.onError(SingleCreate.java:81)
	at com.google.devtools.build.lib.remote.util.RxFutures$OnceSingleOnSubscribe$1.onFailure(RxFutures.java:172)
	at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1132)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at io.grpc.stub.ClientCalls$GrpcFuture.setException(ClientCalls.java:563)
	at io.grpc.stub.ClientCalls$UnaryStreamToFuture.onClose(ClientCalls.java:533)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at com.google.devtools.build.lib.remote.NetworkTimeInterceptor$NetworkTimeCall$1.onClose(NetworkTimeInterceptor.java:81)
	at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:562)
	at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:70)
	at io.grpc.internal.ClientCallImpl$1ClosedByContext.runInContext(ClientCallImpl.java:215)
	at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
	at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: io.grpc.StatusRuntimeException: CANCELLED: Cancelled by user
	at io.grpc.Status.asRuntimeException(Status.java:535)
	... 13 more
Caused by: io.grpc.StatusRuntimeException: CANCELLED: Cancelled by user
	at io.grpc.Status.asRuntimeException(Status.java:526)
	at com.google.devtools.build.lib.remote.ByteStreamUploader$AsyncUpload.cancel(ByteStreamUploader.java:408)
	at com.google.devtools.build.lib.remote.ByteStreamUploader.lambda$startAsyncUpload$1(ByteStreamUploader.java:234)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setFuture(AbstractFuture.java:851)
	at com.google.common.util.concurrent.AbstractTransformFuture$AsyncTransformFuture.setResult(AbstractTransformFuture.java:232)
	at com.google.common.util.concurrent.AbstractTransformFuture$AsyncTransformFuture.setResult(AbstractTransformFuture.java:208)
	at com.google.common.util.concurrent.AbstractTransformFuture.run(AbstractTransformFuture.java:167)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.set(AbstractFuture.java:783)
	at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:119)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.set(AbstractFuture.java:783)
	at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:119)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.set(AbstractFuture.java:783)
	at com.google.common.util.concurrent.SettableFuture.set(SettableFuture.java:49)
	at com.google.devtools.build.lib.remote.util.RxFutures$2.onSuccess(RxFutures.java:249)
	at io.reactivex.rxjava3.internal.operators.single.SingleFlatMap$SingleFlatMapCallback$FlatMapSingleObserver.onSuccess(SingleFlatMap.java:112)
	at io.reactivex.rxjava3.internal.operators.single.SingleUsing$UsingSingleObserver.onSuccess(SingleUsing.java:154)
	at io.reactivex.rxjava3.internal.operators.single.SingleCreate$Emitter.onSuccess(SingleCreate.java:68)
	at com.google.devtools.build.lib.remote.util.RxFutures$OnceSingleOnSubscribe$1.onSuccess(RxFutures.java:155)
	at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1138)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.set(AbstractFuture.java:783)
	at com.google.common.util.concurrent.SettableFuture.set(SettableFuture.java:49)
	at com.google.devtools.build.lib.remote.ByteStreamUploader$Writer.onCompleted(ByteStreamUploader.java:506)
	at io.grpc.stub.ClientCalls$StreamObserverToCallListenerAdapter.onClose(ClientCalls.java:476)
	at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:562)
	at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:70)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:743)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:722)
	... 5 more```

### What's the simplest, easiest way to reproduce this bug? Please provide a minimal example if possible.


use a remote cache: https://github.com/buchgr/bazel-remote

```build --remote_cache=grpc://A.B.C.D:9092```



### Which operating system are you running Bazel on?


Fedora 36

### What is the output of `bazel info release`?


relase 6.0.0

### If `bazel info release` returns `development version` or `(@non-git)`, tell us how you built Bazel.


N/A

### What's the output of `git remote get-url origin; git rev-parse master; git rev-parse HEAD` ?


```text
N/A

Have you found anything relevant by searching the web?

Nothing else found.

Any other information, logs, or outputs that you want to share?

Also reported at buchgr/bazel-remote#629: may be related to slow remote cache performance.

@sgowroji sgowroji added team-Remote-Exec Issues and PRs for the Execution (Remote) team type: bug untriaged labels Jan 24, 2023
@coeuvre coeuvre added the P2 We'll consider working on this in future. (Assignee optional) label Jan 24, 2023
@nickbreen
Copy link
Author

This exception is not correlated with poor remote-cache performance as per buchgr/bazel-remote#629 (comment)

@nickbreen nickbreen changed the title CANCELLED: Cancelled by user exception with bazel 6.0.0 and a remove cache via grpc CANCELLED: Cancelled by user exception with bazel 6.0.0 and a remote cache via grpc Jan 26, 2023
@adam-azarchs
Copy link
Contributor

We've also been seeing this. I usually see this in our CI builds, very rarely when building on my dev machine. I was finally able to reproduce it on my dev machine by building, then bazel clean, then building again. The full log is enormous and also contains stuff I don't want to sort through to decide if I can share it, but I'm putting some snippits from the server log here in case they help.

During previous builds before the one that failed, I see a bunch of these, which may or may not be relevent.
230201 23:56:51.437:XT 3167 [com.google.devtools.build.lib.bugreport.BugReport.logException] Exception
java.lang.IllegalStateException: fileSystem must be an instance of RemoteActionFileSystem
	at com.google.common.base.Preconditions.checkState(Preconditions.java:502)
	at com.google.devtools.build.lib.remote.RemoteModule.lambda$executorInit$2(RemoteModule.java:933)
	at com.google.devtools.build.lib.remote.ToplevelArtifactsDownloader.onTestAttempt(ToplevelArtifactsDownloader.java:115)
	at jdk.internal.reflect.GeneratedMethodAccessor571.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.base/java.lang.reflect.Method.invoke(Unknown Source)
	at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:85)
	at com.google.common.eventbus.Subscriber.lambda$dispatchEvent$0(Subscriber.java:71)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:68)
	at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Dispatcher.java:109)
	at com.google.common.eventbus.EventBus.post(EventBus.java:267)
	at com.google.devtools.build.lib.events.Reporter.post(Reporter.java:138)
	at com.google.devtools.build.lib.analysis.test.TestRunnerAction.actionCacheHit(TestRunnerAction.java:619)
	at com.google.devtools.build.lib.skyframe.SkyframeActionExecutor.checkActionCache(SkyframeActionExecutor.java:678)
	at com.google.devtools.build.lib.skyframe.ActionExecutionFunction.checkCacheAndExecuteIfNeeded(ActionExecutionFunction.java:756)
	at com.google.devtools.build.lib.skyframe.ActionExecutionFunction.computeInternal(ActionExecutionFunction.java:323)
	at com.google.devtools.build.lib.skyframe.ActionExecutionFunction.compute(ActionExecutionFunction.java:161)
	at com.google.devtools.build.skyframe.AbstractParallelEvaluator$Evaluate.run(AbstractParallelEvaluator.java:571)
	at com.google.devtools.build.lib.concurrent.AbstractQueueVisitor$WrappedRunnable.run(AbstractQueueVisitor.java:382)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)
Bits around the first error encountered
230202 00:03:51.792:I 4550 [com.google.devtools.build.lib.exec.FileWriteStrategy.beginWriteOutputToFile] Spent 33374 milliseconds doing running write for action action 'Creating source manifest for //:ipnb.sh'
230202 00:03:57.541:WT 4554 [com.google.devtools.build.skyframe.AbstractParallelEvaluator$Evaluate.run] Aborting evaluation while evaluating UnshareableActionLookupData{actionLookupKey=ConfiguredTargetKey{label=//...:build_format_test, config=BuildConfigurationKey[ded2fb11fde7de3634d2816fac7183c950fd0c6de27cca0d73bd4715e351eb11]}, actionIndex=3}
com.google.devtools.build.lib.skyframe.ActionExecutionFunction$ActionExecutionFunctionException: com.google.devtools.build.lib.actions.AlreadyReportedActionExecutionException: (Exit 34): CANCELLED: io.grpc.Context was cancelled without error
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
	at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$handleStatus$5(GrpcCacheClient.java:252)
	at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
	at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
	at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.common.util.concurrent.AbstractTransformFuture.run(AbstractTransformFuture.java:104)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.common.util.concurrent.SettableFuture.setException(SettableFuture.java:55)
	at com.google.devtools.build.lib.remote.util.RxFutures$2.onError(RxFutures.java:257)
	at io.reactivex.rxjava3.internal.operators.single.SingleFlatMap$SingleFlatMapCallback$FlatMapSingleObserver.onError(SingleFlatMap.java:117)
	at io.reactivex.rxjava3.internal.operators.single.SingleUsing$UsingSingleObserver.onError(SingleUsing.java:180)
	at io.reactivex.rxjava3.internal.operators.single.SingleCreate$Emitter.tryOnError(SingleCreate.java:95)
	at io.reactivex.rxjava3.internal.operators.single.SingleCreate$Emitter.onError(SingleCreate.java:81)
	at com.google.devtools.build.lib.remote.util.RxFutures$OnceSingleOnSubscribe$1.onFailure(RxFutures.java:172)
	at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1132)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at io.grpc.stub.ClientCalls$GrpcFuture.setException(ClientCalls.java:563)
	at io.grpc.stub.ClientCalls$UnaryStreamToFuture.onClose(ClientCalls.java:533)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at com.google.devtools.build.lib.remote.NetworkTimeInterceptor$NetworkTimeCall$1.onClose(NetworkTimeInterceptor.java:81)
	at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:562)
	at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:70)
	at io.grpc.internal.ClientCallImpl$1ClosedByContext.runInContext(ClientCallImpl.java:215)
	at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
	at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)
Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
	at io.grpc.Status.asRuntimeException(Status.java:535)
	... 13 more

	at com.google.devtools.build.lib.skyframe.ActionExecutionFunction.computeInternal(ActionExecutionFunction.java:347)
	at com.google.devtools.build.lib.skyframe.ActionExecutionFunction.compute(ActionExecutionFunction.java:161)
	at com.google.devtools.build.skyframe.AbstractParallelEvaluator$Evaluate.run(AbstractParallelEvaluator.java:571)
	at com.google.devtools.build.lib.concurrent.AbstractQueueVisitor$WrappedRunnable.run(AbstractQueueVisitor.java:382)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)
Caused by: com.google.devtools.build.lib.actions.AlreadyReportedActionExecutionException: (Exit 34): CANCELLED: io.grpc.Context was cancelled without error
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
	at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$handleStatus$5(GrpcCacheClient.java:252)
	at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
	at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
	at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.common.util.concurrent.AbstractTransformFuture.run(AbstractTransformFuture.java:104)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.common.util.concurrent.SettableFuture.setException(SettableFuture.java:55)
	at com.google.devtools.build.lib.remote.util.RxFutures$2.onError(RxFutures.java:257)
	at io.reactivex.rxjava3.internal.operators.single.SingleFlatMap$SingleFlatMapCallback$FlatMapSingleObserver.onError(SingleFlatMap.java:117)
	at io.reactivex.rxjava3.internal.operators.single.SingleUsing$UsingSingleObserver.onError(SingleUsing.java:180)
	at io.reactivex.rxjava3.internal.operators.single.SingleCreate$Emitter.tryOnError(SingleCreate.java:95)
	at io.reactivex.rxjava3.internal.operators.single.SingleCreate$Emitter.onError(SingleCreate.java:81)
	at com.google.devtools.build.lib.remote.util.RxFutures$OnceSingleOnSubscribe$1.onFailure(RxFutures.java:172)
	at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1132)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at io.grpc.stub.ClientCalls$GrpcFuture.setException(ClientCalls.java:563)
	at io.grpc.stub.ClientCalls$UnaryStreamToFuture.onClose(ClientCalls.java:533)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at com.google.devtools.build.lib.remote.NetworkTimeInterceptor$NetworkTimeCall$1.onClose(NetworkTimeInterceptor.java:81)
	at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:562)
	at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:70)
	at io.grpc.internal.ClientCallImpl$1ClosedByContext.runInContext(ClientCallImpl.java:215)
	at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
	at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)
Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
	at io.grpc.Status.asRuntimeException(Status.java:535)
	... 13 more

	... 7 more
Caused by: com.google.devtools.build.lib.exec.SpawnExecException: CANCELLED: io.grpc.Context was cancelled without error
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
	at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$handleStatus$5(GrpcCacheClient.java:252)
	at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
	at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
	at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.common.util.concurrent.AbstractTransformFuture.run(AbstractTransformFuture.java:104)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.common.util.concurrent.SettableFuture.setException(SettableFuture.java:55)
	at com.google.devtools.build.lib.remote.util.RxFutures$2.onError(RxFutures.java:257)
	at io.reactivex.rxjava3.internal.operators.single.SingleFlatMap$SingleFlatMapCallback$FlatMapSingleObserver.onError(SingleFlatMap.java:117)
	at io.reactivex.rxjava3.internal.operators.single.SingleUsing$UsingSingleObserver.onError(SingleUsing.java:180)
	at io.reactivex.rxjava3.internal.operators.single.SingleCreate$Emitter.tryOnError(SingleCreate.java:95)
	at io.reactivex.rxjava3.internal.operators.single.SingleCreate$Emitter.onError(SingleCreate.java:81)
	at com.google.devtools.build.lib.remote.util.RxFutures$OnceSingleOnSubscribe$1.onFailure(RxFutures.java:172)
	at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1132)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at io.grpc.stub.ClientCalls$GrpcFuture.setException(ClientCalls.java:563)
	at io.grpc.stub.ClientCalls$UnaryStreamToFuture.onClose(ClientCalls.java:533)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at com.google.devtools.build.lib.remote.NetworkTimeInterceptor$NetworkTimeCall$1.onClose(NetworkTimeInterceptor.java:81)
	at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:562)
	at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:70)
	at io.grpc.internal.ClientCallImpl$1ClosedByContext.runInContext(ClientCallImpl.java:215)
	at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
	at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)
Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
	at io.grpc.Status.asRuntimeException(Status.java:535)
	... 13 more

	at com.google.devtools.build.lib.exec.AbstractSpawnStrategy.exec(AbstractSpawnStrategy.java:209)
	at com.google.devtools.build.lib.exec.AbstractSpawnStrategy.exec(AbstractSpawnStrategy.java:112)
	at com.google.devtools.build.lib.actions.SpawnStrategy.beginExecution(SpawnStrategy.java:47)
	at com.google.devtools.build.lib.exec.SpawnStrategyResolver.beginExecution(SpawnStrategyResolver.java:64)
	at com.google.devtools.build.lib.exec.StandaloneTestStrategy.beginTestAttempt(StandaloneTestStrategy.java:323)
	at com.google.devtools.build.lib.exec.StandaloneTestStrategy$StandaloneTestRunnerSpawn.beginExecution(StandaloneTestStrategy.java:599)
	at com.google.devtools.build.lib.analysis.test.TestRunnerAction.beginIfNotCancelled(TestRunnerAction.java:991)
	at com.google.devtools.build.lib.analysis.test.TestRunnerAction.beginExecution(TestRunnerAction.java:958)
	at com.google.devtools.build.lib.analysis.test.TestRunnerAction.execute(TestRunnerAction.java:1015)
	at com.google.devtools.build.lib.analysis.test.TestRunnerAction.execute(TestRunnerAction.java:1007)
	at com.google.devtools.build.lib.skyframe.SkyframeActionExecutor$5.execute(SkyframeActionExecutor.java:940)
	at com.google.devtools.build.lib.skyframe.SkyframeActionExecutor$ActionRunner.continueAction(SkyframeActionExecutor.java:1107)
	at com.google.devtools.build.lib.skyframe.SkyframeActionExecutor$ActionRunner.run(SkyframeActionExecutor.java:1065)
	at com.google.devtools.build.lib.skyframe.ActionExecutionState.runStateMachine(ActionExecutionState.java:160)
	at com.google.devtools.build.lib.skyframe.ActionExecutionState.getResultOrDependOnFuture(ActionExecutionState.java:93)
	at com.google.devtools.build.lib.skyframe.SkyframeActionExecutor.executeAction(SkyframeActionExecutor.java:507)
	at com.google.devtools.build.lib.skyframe.ActionExecutionFunction.checkCacheAndExecuteIfNeeded(ActionExecutionFunction.java:826)
	at com.google.devtools.build.lib.skyframe.ActionExecutionFunction.computeInternal(ActionExecutionFunction.java:323)
	... 6 more
230202 00:03:57.980:I 1844 [com.google.devtools.build.lib.buildtool.ExecutionTool.saveActionCache] Spent 188 milliseconds doing Saving action cache
230202 00:03:57.989:I 1844 [com.google.devtools.build.lib.runtime.BuildSummaryStatsModule.buildComplete] Critical Path: 72.20s, Remote (0.47% of the time): [parse: 0.20%, queue: 0.00%, network: 0.25%, upload: 0.00%, setup: 0.00%, process: 0.00%, fetch: 0.02%, retry: 0.00%, processOutputs: 0.00%, other: 0.00%, input files: 24182, input bytes: 11335240329, memory bytes: 0, input files limit: 0, input bytes limit: 0, output files limit: 0, output bytes limit: 0, memory limit: 0, time limit: 0 seconds]
After those, this
230202 00:04:01.473:WT 4085 [com.google.devtools.build.lib.remote.ToplevelArtifactsDownloader$2.onFailure] Failed to download toplevel artifacts.
com.google.devtools.build.lib.remote.common.BulkTransferException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
	at com.google.devtools.build.lib.remote.util.RxUtils$BulkTransferExceptionCollector.onResult(RxUtils.java:91)
	at io.reactivex.rxjava3.internal.operators.flowable.FlowableCollectSingle$CollectSubscriber.onNext(FlowableCollectSingle.java:94)
	at io.reactivex.rxjava3.internal.operators.flowable.FlowableFlatMap$MergeSubscriber.tryEmit(FlowableFlatMap.java:270)
	at io.reactivex.rxjava3.internal.operators.flowable.FlowableFlatMap$InnerSubscriber.onNext(FlowableFlatMap.java:627)
	at io.reactivex.rxjava3.internal.operators.flowable.FlowableFlatMapSingle$FlatMapSingleSubscriber.innerSuccess(FlowableFlatMapSingle.java:173)
	at io.reactivex.rxjava3.internal.operators.flowable.FlowableFlatMapSingle$FlatMapSingleSubscriber$InnerObserver.onSuccess(FlowableFlatMapSingle.java:342)
	at io.reactivex.rxjava3.internal.observers.ResumeSingleObserver.onSuccess(ResumeSingleObserver.java:46)
	at io.reactivex.rxjava3.internal.operators.single.SingleJust.subscribeActual(SingleJust.java:30)
	at io.reactivex.rxjava3.core.Single.subscribe(Single.java:4855)
	at io.reactivex.rxjava3.internal.operators.single.SingleResumeNext$ResumeMainSingleObserver.onError(SingleResumeNext.java:80)
	at io.reactivex.rxjava3.internal.operators.completable.CompletableToSingle$ToSingle.onError(CompletableToSingle.java:73)
	at io.reactivex.rxjava3.internal.operators.completable.CompletableFromSingle$CompletableFromSingleObserver.onError(CompletableFromSingle.java:41)
	at io.reactivex.rxjava3.internal.operators.single.SingleCreate$Emitter.tryOnError(SingleCreate.java:95)
	at io.reactivex.rxjava3.internal.operators.single.SingleCreate$Emitter.onError(SingleCreate.java:81)
	at com.google.devtools.build.lib.remote.util.AsyncTaskCache$1.onError(AsyncTaskCache.java:339)
	at com.google.devtools.build.lib.remote.util.AsyncTaskCache$Execution.onError(AsyncTaskCache.java:205)
	at io.reactivex.rxjava3.internal.operators.completable.CompletableToSingle$ToSingle.onError(CompletableToSingle.java:73)
	at io.reactivex.rxjava3.internal.operators.completable.CompletableUsing$UsingObserver.onError(CompletableUsing.java:165)
	at io.reactivex.rxjava3.internal.operators.completable.CompletablePeek$CompletableObserverImplementation.onError(CompletablePeek.java:95)
	at io.reactivex.rxjava3.internal.operators.completable.CompletableCreate$Emitter.tryOnError(CompletableCreate.java:91)
	at io.reactivex.rxjava3.internal.operators.completable.CompletableCreate$Emitter.onError(CompletableCreate.java:77)
	at com.google.devtools.build.lib.remote.util.RxFutures$OnceCompletableOnSubscribe$1.onFailure(RxFutures.java:102)
	at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1124)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setFuture(AbstractFuture.java:851)
	at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.setResult(AbstractCatchingFuture.java:214)
	at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.setResult(AbstractCatchingFuture.java:190)
	at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:142)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.common.util.concurrent.AbstractTransformFuture.run(AbstractTransformFuture.java:104)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setFuture(AbstractFuture.java:851)
	at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.setResult(AbstractCatchingFuture.java:214)
	at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.setResult(AbstractCatchingFuture.java:190)
	at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:142)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setFuture(AbstractFuture.java:851)
	at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.setResult(AbstractCatchingFuture.java:214)
	at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.setResult(AbstractCatchingFuture.java:190)
	at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:142)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.common.util.concurrent.SettableFuture.setException(SettableFuture.java:55)
	at com.google.devtools.build.lib.remote.util.RxFutures$2.onError(RxFutures.java:257)
	at io.reactivex.rxjava3.internal.operators.single.SingleFlatMap$SingleFlatMapCallback$FlatMapSingleObserver.onError(SingleFlatMap.java:117)
	at io.reactivex.rxjava3.internal.operators.single.SingleUsing$UsingSingleObserver.onError(SingleUsing.java:180)
	at io.reactivex.rxjava3.internal.operators.single.SingleCreate$Emitter.tryOnError(SingleCreate.java:95)
	at io.reactivex.rxjava3.internal.operators.single.SingleCreate$Emitter.onError(SingleCreate.java:81)
	at com.google.devtools.build.lib.remote.util.RxFutures$OnceSingleOnSubscribe$1.onFailure(RxFutures.java:172)
	at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1124)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.common.util.concurrent.SettableFuture.setException(SettableFuture.java:55)
	at com.google.devtools.build.lib.remote.GrpcCacheClient$1.onError(GrpcCacheClient.java:414)
	at io.grpc.stub.ClientCalls$StreamObserverToCallListenerAdapter.onClose(ClientCalls.java:478)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at com.google.devtools.build.lib.remote.NetworkTimeInterceptor$NetworkTimeCall$1.onClose(NetworkTimeInterceptor.java:81)
	at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:562)
	at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:70)
	at io.grpc.internal.ClientCallImpl$1ClosedByContext.runInContext(ClientCallImpl.java:215)
	at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
	at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)
	Suppressed: java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$downloadBlob$18(GrpcCacheClient.java:345)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
		at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
		... 50 more
	Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at io.grpc.Status.asRuntimeException(Status.java:535)
		... 13 more
And then a bunch of stuff that looks like duplicates of these
230202 00:04:06.133:WT 4144 [com.google.devtools.build.lib.remote.ToplevelArtifactsDownloader$2.onFailure] Failed to download toplevel artifacts.
com.google.devtools.build.lib.remote.common.BulkTransferException: 44 errors during bulk transfer:
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
	at com.google.devtools.build.lib.remote.util.RxUtils$BulkTransferExceptionCollector.onResult(RxUtils.java:91)
	at io.reactivex.rxjava3.internal.operators.flowable.FlowableCollectSingle$CollectSubscriber.onNext(FlowableCollectSingle.java:94)
	at io.reactivex.rxjava3.internal.operators.flowable.FlowableFlatMap$MergeSubscriber.tryEmit(FlowableFlatMap.java:270)
	at io.reactivex.rxjava3.internal.operators.flowable.FlowableFlatMap$InnerSubscriber.onNext(FlowableFlatMap.java:627)
	at io.reactivex.rxjava3.internal.operators.flowable.FlowableFlatMapSingle$FlatMapSingleSubscriber.innerSuccess(FlowableFlatMapSingle.java:173)
	at io.reactivex.rxjava3.internal.operators.flowable.FlowableFlatMapSingle$FlatMapSingleSubscriber$InnerObserver.onSuccess(FlowableFlatMapSingle.java:342)
	at io.reactivex.rxjava3.internal.observers.ResumeSingleObserver.onSuccess(ResumeSingleObserver.java:46)
	at io.reactivex.rxjava3.internal.operators.single.SingleJust.subscribeActual(SingleJust.java:30)
	at io.reactivex.rxjava3.core.Single.subscribe(Single.java:4855)
	at io.reactivex.rxjava3.internal.operators.single.SingleResumeNext$ResumeMainSingleObserver.onError(SingleResumeNext.java:80)
	at io.reactivex.rxjava3.internal.operators.completable.CompletableToSingle$ToSingle.onError(CompletableToSingle.java:73)
	at io.reactivex.rxjava3.internal.operators.completable.CompletableFromSingle$CompletableFromSingleObserver.onError(CompletableFromSingle.java:41)
	at io.reactivex.rxjava3.internal.operators.single.SingleCreate$Emitter.tryOnError(SingleCreate.java:95)
	at io.reactivex.rxjava3.internal.operators.single.SingleCreate$Emitter.onError(SingleCreate.java:81)
	at com.google.devtools.build.lib.remote.util.AsyncTaskCache$1.onError(AsyncTaskCache.java:339)
	at com.google.devtools.build.lib.remote.util.AsyncTaskCache$Execution.onError(AsyncTaskCache.java:205)
	at io.reactivex.rxjava3.internal.operators.completable.CompletableToSingle$ToSingle.onError(CompletableToSingle.java:73)
	at io.reactivex.rxjava3.internal.operators.completable.CompletableUsing$UsingObserver.onError(CompletableUsing.java:165)
	at io.reactivex.rxjava3.internal.operators.completable.CompletablePeek$CompletableObserverImplementation.onError(CompletablePeek.java:95)
	at io.reactivex.rxjava3.internal.operators.completable.CompletableCreate$Emitter.tryOnError(CompletableCreate.java:91)
	at io.reactivex.rxjava3.internal.operators.completable.CompletableCreate$Emitter.onError(CompletableCreate.java:77)
	at com.google.devtools.build.lib.remote.util.RxFutures$OnceCompletableOnSubscribe$1.onFailure(RxFutures.java:102)
	at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1124)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setFuture(AbstractFuture.java:851)
	at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.setResult(AbstractCatchingFuture.java:214)
	at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.setResult(AbstractCatchingFuture.java:190)
	at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:142)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.common.util.concurrent.AbstractTransformFuture.run(AbstractTransformFuture.java:104)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setFuture(AbstractFuture.java:851)
	at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.setResult(AbstractCatchingFuture.java:214)
	at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.setResult(AbstractCatchingFuture.java:190)
	at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:142)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setFuture(AbstractFuture.java:851)
	at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.setResult(AbstractCatchingFuture.java:214)
	at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.setResult(AbstractCatchingFuture.java:190)
	at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:142)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.common.util.concurrent.SettableFuture.setException(SettableFuture.java:55)
	at com.google.devtools.build.lib.remote.util.RxFutures$2.onError(RxFutures.java:257)
	at io.reactivex.rxjava3.internal.operators.single.SingleFlatMap$SingleFlatMapCallback$FlatMapSingleObserver.onError(SingleFlatMap.java:117)
	at io.reactivex.rxjava3.internal.operators.single.SingleUsing$UsingSingleObserver.onError(SingleUsing.java:180)
	at io.reactivex.rxjava3.internal.operators.single.SingleCreate$Emitter.tryOnError(SingleCreate.java:95)
	at io.reactivex.rxjava3.internal.operators.single.SingleCreate$Emitter.onError(SingleCreate.java:81)
	at com.google.devtools.build.lib.remote.util.RxFutures$OnceSingleOnSubscribe$1.onFailure(RxFutures.java:172)
	at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1124)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
	at com.google.common.util.concurrent.SettableFuture.setException(SettableFuture.java:55)
	at com.google.devtools.build.lib.remote.GrpcCacheClient$1.onError(GrpcCacheClient.java:414)
	at io.grpc.stub.ClientCalls$StreamObserverToCallListenerAdapter.onClose(ClientCalls.java:478)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at com.google.devtools.build.lib.remote.NetworkTimeInterceptor$NetworkTimeCall$1.onClose(NetworkTimeInterceptor.java:81)
	at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:562)
	at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:70)
	at io.grpc.internal.ClientCallImpl$1ClosedByContext.runInContext(ClientCallImpl.java:215)
	at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
	at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)
	Suppressed: java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$downloadBlob$18(GrpcCacheClient.java:345)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
		at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
		... 50 more
	Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at io.grpc.Status.asRuntimeException(Status.java:535)
		... 13 more
	Suppressed: java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$downloadBlob$18(GrpcCacheClient.java:345)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
		at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
		... 50 more
	Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at io.grpc.Status.asRuntimeException(Status.java:535)
		... 13 more
	Suppressed: java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$downloadBlob$18(GrpcCacheClient.java:345)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
		at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
		... 50 more
	Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at io.grpc.Status.asRuntimeException(Status.java:535)
		... 13 more
	Suppressed: java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$downloadBlob$18(GrpcCacheClient.java:345)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
		at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
		... 50 more
	Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at io.grpc.Status.asRuntimeException(Status.java:535)
		... 13 more
	Suppressed: java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$downloadBlob$18(GrpcCacheClient.java:345)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
		at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
		... 50 more
	Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at io.grpc.Status.asRuntimeException(Status.java:535)
		... 13 more
	Suppressed: java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$downloadBlob$18(GrpcCacheClient.java:345)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
		at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
		... 50 more
	Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at io.grpc.Status.asRuntimeException(Status.java:535)
		... 13 more
	Suppressed: java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$downloadBlob$18(GrpcCacheClient.java:345)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
		at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
		... 50 more
	Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at io.grpc.Status.asRuntimeException(Status.java:535)
		... 13 more
	Suppressed: java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$downloadBlob$18(GrpcCacheClient.java:345)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
		at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
		... 50 more
	Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at io.grpc.Status.asRuntimeException(Status.java:535)
		... 13 more
	Suppressed: java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$downloadBlob$18(GrpcCacheClient.java:345)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
		at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
		... 50 more
	Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at io.grpc.Status.asRuntimeException(Status.java:535)
		... 13 more
	Suppressed: java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$downloadBlob$18(GrpcCacheClient.java:345)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
		at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
		... 50 more
	Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at io.grpc.Status.asRuntimeException(Status.java:535)
		... 13 more
	Suppressed: java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$downloadBlob$18(GrpcCacheClient.java:345)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
		at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
		... 50 more
	Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at io.grpc.Status.asRuntimeException(Status.java:535)
		... 13 more
	Suppressed: java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$downloadBlob$18(GrpcCacheClient.java:345)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
		at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
		... 50 more
	Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at io.grpc.Status.asRuntimeException(Status.java:535)
		... 13 more
	Suppressed: java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$downloadBlob$18(GrpcCacheClient.java:345)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
		at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
		... 50 more
	Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at io.grpc.Status.asRuntimeException(Status.java:535)
		... 13 more
	Suppressed: java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$downloadBlob$18(GrpcCacheClient.java:345)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
		at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
		... 50 more
	Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at io.grpc.Status.asRuntimeException(Status.java:535)
		... 13 more
	Suppressed: java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$downloadBlob$18(GrpcCacheClient.java:345)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
		at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
		... 50 more
	Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at io.grpc.Status.asRuntimeException(Status.java:535)
		... 13 more
	Suppressed: java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$downloadBlob$18(GrpcCacheClient.java:345)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
		at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
		... 50 more
	Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at io.grpc.Status.asRuntimeException(Status.java:535)
		... 13 more
	Suppressed: java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$downloadBlob$18(GrpcCacheClient.java:345)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
		at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
		... 50 more
	Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at io.grpc.Status.asRuntimeException(Status.java:535)
		... 13 more
	Suppressed: java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$downloadBlob$18(GrpcCacheClient.java:345)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
		at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
		... 50 more
	Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at io.grpc.Status.asRuntimeException(Status.java:535)
		... 13 more
	Suppressed: java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$downloadBlob$18(GrpcCacheClient.java:345)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
		at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
		... 50 more
	Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at io.grpc.Status.asRuntimeException(Status.java:535)
		... 13 more
	Suppressed: java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$downloadBlob$18(GrpcCacheClient.java:345)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
		at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
		... 50 more
	Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at io.grpc.Status.asRuntimeException(Status.java:535)
		... 13 more
	Suppressed: java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$downloadBlob$18(GrpcCacheClient.java:345)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
		at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
		... 50 more
	Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at io.grpc.Status.asRuntimeException(Status.java:535)
		... 13 more
	Suppressed: java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$downloadBlob$18(GrpcCacheClient.java:345)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
		at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
		... 50 more
	Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at io.grpc.Status.asRuntimeException(Status.java:535)
		... 13 more
	Suppressed: java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$downloadBlob$18(GrpcCacheClient.java:345)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
		at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
		... 50 more
	Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at io.grpc.Status.asRuntimeException(Status.java:535)
		... 13 more
	Suppressed: java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$downloadBlob$18(GrpcCacheClient.java:345)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
		at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
		... 50 more
	Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at io.grpc.Status.asRuntimeException(Status.java:535)
		... 13 more
	Suppressed: java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$downloadBlob$18(GrpcCacheClient.java:345)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
		at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
		... 50 more
	Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at io.grpc.Status.asRuntimeException(Status.java:535)
		... 13 more
	Suppressed: java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$downloadBlob$18(GrpcCacheClient.java:345)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
		at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
		... 50 more
	Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at io.grpc.Status.asRuntimeException(Status.java:535)
		... 13 more
	Suppressed: java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$downloadBlob$18(GrpcCacheClient.java:345)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
		at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
		... 50 more
	Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at io.grpc.Status.asRuntimeException(Status.java:535)
		... 13 more
	Suppressed: java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$downloadBlob$18(GrpcCacheClient.java:345)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
		at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
		... 50 more
	Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at io.grpc.Status.asRuntimeException(Status.java:535)
		... 13 more
	Suppressed: java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$downloadBlob$18(GrpcCacheClient.java:345)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
		at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
		... 50 more
	Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at io.grpc.Status.asRuntimeException(Status.java:535)
		... 13 more
	Suppressed: java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$downloadBlob$18(GrpcCacheClient.java:345)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
		at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
		... 50 more
	Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at io.grpc.Status.asRuntimeException(Status.java:535)
		... 13 more
	Suppressed: java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$downloadBlob$18(GrpcCacheClient.java:345)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
		at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
		... 50 more
	Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at io.grpc.Status.asRuntimeException(Status.java:535)
		... 13 more
	Suppressed: java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$downloadBlob$18(GrpcCacheClient.java:345)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
		at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
		... 50 more
	Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at io.grpc.Status.asRuntimeException(Status.java:535)
		... 13 more
	Suppressed: java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$downloadBlob$18(GrpcCacheClient.java:345)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
		at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
		... 50 more
	Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at io.grpc.Status.asRuntimeException(Status.java:535)
		... 13 more
	Suppressed: java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$downloadBlob$18(GrpcCacheClient.java:345)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
		at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
		... 50 more
	Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at io.grpc.Status.asRuntimeException(Status.java:535)
		... 13 more
	Suppressed: java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$downloadBlob$18(GrpcCacheClient.java:345)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
		at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
		... 50 more
	Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at io.grpc.Status.asRuntimeException(Status.java:535)
		... 13 more
	Suppressed: java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$downloadBlob$18(GrpcCacheClient.java:345)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
		at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
		... 50 more
	Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at io.grpc.Status.asRuntimeException(Status.java:535)
		... 13 more
	Suppressed: java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$downloadBlob$18(GrpcCacheClient.java:345)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
		at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
		... 50 more
	Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at io.grpc.Status.asRuntimeException(Status.java:535)
		... 13 more
	Suppressed: java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$downloadBlob$18(GrpcCacheClient.java:345)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
		at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
		... 50 more
	Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at io.grpc.Status.asRuntimeException(Status.java:535)
		... 13 more
	Suppressed: java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$downloadBlob$18(GrpcCacheClient.java:345)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
		at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
		... 50 more
	Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at io.grpc.Status.asRuntimeException(Status.java:535)
		... 13 more
	Suppressed: java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$downloadBlob$18(GrpcCacheClient.java:345)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
		at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
		... 50 more
	Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at io.grpc.Status.asRuntimeException(Status.java:535)
		... 13 more
	Suppressed: java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$downloadBlob$18(GrpcCacheClient.java:345)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
		at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
		... 50 more
	Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at io.grpc.Status.asRuntimeException(Status.java:535)
		... 13 more
	Suppressed: java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$downloadBlob$18(GrpcCacheClient.java:345)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
		at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
		... 50 more
	Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at io.grpc.Status.asRuntimeException(Status.java:535)
		... 13 more
	Suppressed: java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$downloadBlob$18(GrpcCacheClient.java:345)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
		at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
		... 50 more
	Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at io.grpc.Status.asRuntimeException(Status.java:535)
		... 13 more
	Suppressed: java.io.IOException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at com.google.devtools.build.lib.remote.GrpcCacheClient.lambda$downloadBlob$18(GrpcCacheClient.java:345)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:203)
		at com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback(AbstractCatchingFuture.java:190)
		at com.google.common.util.concurrent.AbstractCatchingFuture.run(AbstractCatchingFuture.java:133)
		... 50 more
	Caused by: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
		at io.grpc.Status.asRuntimeException(Status.java:535)
		... 13 more
Since this seems to be very difficult to reproduce outside of our CI, here's the section of our `.bazelrc` which is unique to jenkins
# Log options read from rc files, to aid debugging.
common:jenkins --announce_rc

# Collect profile information
build:jenkins --profile=build_profile.json.gz
build:jenkins --experimental_announce_profile_path

# Build with optimizations.
build:jenkins -c opt

# Include time and version stamping information in build artifacts.
# Note that this makes the build less reproducible, so should be avoided
# for unofficial builds as it reduces the effectiveness of caching.
build:jenkins --stamp

# Show complete command lines, environment variables, and outputs from failed
# build actions.
build:jenkins --verbose_failures

# Build everything, including non-test targets, for `bazel test //...`
test:jenkins --nobuild_tests_only

# Include detailed information about test failures.
test:jenkins --test_summary=detailed

# Log which tests have inappropriate timeouts set, rather than a single
# warning that such tests exists.
test:jenkins --test_verbose_timeout_warnings

# Drop the in-memory build state cache early to reduce the build system's memory
# consumption.  See https://docs.bazel.build/memory-saving-mode.html.
# This means subsequent builds need to re-run all of the build rule logic to
# rebuild the action graph from scratch, but this doesn't matter in CI because
# we shut down the server anyway.
build:jenkins --discard_analysis_cache
build:jenkins --notrack_incremental_state
build:jenkins --nokeep_state_after_build

# Don't spam the console, since probably no one is looking at it in real time.
build:jenkins --show_progress_rate_limit=2

# Download as little as possible beyond the tarballs.
build:jenkins --remote_download_outputs=minimal
build:jenkins --experimental_remote_download_regex=.*((-[^/]*.tar.zst)|/test.xml)$

# Avoid OOM due to too much parallelism on jenkins build machines.
build:jenkins --local_ram_resources=HOST_RAM*.25

# Have bazel track actual memory available on the system, rather than assuming
# every action is using what it thinks it will use.
build:jenkins --experimental_local_memory_estimate

@mostynb
Copy link
Contributor

mostynb commented Feb 2, 2023

@adam-azarchs: which cache server are you using?

@adam-azarchs
Copy link
Contributor

@adam-azarchs: which cache server are you using?

One managed by EngFlow (who are already aware of this issue, but thought I'd share the logs here as well in case they help)

@mostynb
Copy link
Contributor

mostynb commented Feb 2, 2023

OK, since this reproduces with two different cache servers (EngFlow's and bazel-remote), that suggests it's probably a bazel issue.

@adam-azarchs
Copy link
Contributor

I managed to get it to reproduce that error again, but without the flags unique to our CI builds and without any other builds coming earlier in the logs, so those flags were a read herring as were the IllegalStateException errors. This time the stack trace in the full log was quite a bit shorter and simpler, but interestingly the failure was again in TestRunnerAction.execute, and for the same kind of test rule (though not the exact same target. The rule in question just writes a little shell snippit to run buildifier --diff on a file, nothing complicated).

log snippit
230203 22:40:51.149:WT 1590 [com.google.devtools.build.skyframe.AbstractParallelEvaluator$Evaluate.run] Aborting evaluation while evaluating UnshareableActionLookupData{actionLookupKey=ConfiguredTargetKey{label=...:build_format_test, config=BuildConfigurationKey[5ea1c4763506539a1f79dada2744730e03cd55fd775ff123d16b51f54e5b4aef]}, actionIndex=3}
com.google.devtools.build.lib.skyframe.ActionExecutionFunction$ActionExecutionFunctionException: com.google.devtools.build.lib.actions.AlreadyReportedActionExecutionException: (Exit 34): io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
	at com.google.devtools.build.lib.skyframe.ActionExecutionFunction.computeInternal(ActionExecutionFunction.java:347)
	at com.google.devtools.build.lib.skyframe.ActionExecutionFunction.compute(ActionExecutionFunction.java:161)
	at com.google.devtools.build.skyframe.AbstractParallelEvaluator$Evaluate.run(AbstractParallelEvaluator.java:571)
	at com.google.devtools.build.lib.concurrent.AbstractQueueVisitor$WrappedRunnable.run(AbstractQueueVisitor.java:382)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)
Caused by: com.google.devtools.build.lib.actions.AlreadyReportedActionExecutionException: (Exit 34): io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
	... 7 more
Caused by: com.google.devtools.build.lib.exec.SpawnExecException: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error
	at com.google.devtools.build.lib.exec.AbstractSpawnStrategy.exec(AbstractSpawnStrategy.java:209)
	at com.google.devtools.build.lib.exec.AbstractSpawnStrategy.exec(AbstractSpawnStrategy.java:112)
	at com.google.devtools.build.lib.actions.SpawnStrategy.beginExecution(SpawnStrategy.java:47)
	at com.google.devtools.build.lib.exec.SpawnStrategyResolver.beginExecution(SpawnStrategyResolver.java:64)
	at com.google.devtools.build.lib.exec.StandaloneTestStrategy.beginTestAttempt(StandaloneTestStrategy.java:323)
	at com.google.devtools.build.lib.exec.StandaloneTestStrategy$StandaloneTestRunnerSpawn.beginExecution(StandaloneTestStrategy.java:599)
	at com.google.devtools.build.lib.analysis.test.TestRunnerAction.beginIfNotCancelled(TestRunnerAction.java:991)
	at com.google.devtools.build.lib.analysis.test.TestRunnerAction.beginExecution(TestRunnerAction.java:958)
	at com.google.devtools.build.lib.analysis.test.TestRunnerAction.execute(TestRunnerAction.java:1015)
	at com.google.devtools.build.lib.analysis.test.TestRunnerAction.execute(TestRunnerAction.java:1007)
	at com.google.devtools.build.lib.skyframe.SkyframeActionExecutor$5.execute(SkyframeActionExecutor.java:940)
	at com.google.devtools.build.lib.skyframe.SkyframeActionExecutor$ActionRunner.continueAction(SkyframeActionExecutor.java:1107)
	at com.google.devtools.build.lib.skyframe.SkyframeActionExecutor$ActionRunner.run(SkyframeActionExecutor.java:1065)
	at com.google.devtools.build.lib.skyframe.ActionExecutionState.runStateMachine(ActionExecutionState.java:160)
	at com.google.devtools.build.lib.skyframe.ActionExecutionState.getResultOrDependOnFuture(ActionExecutionState.java:93)
	at com.google.devtools.build.lib.skyframe.SkyframeActionExecutor.executeAction(SkyframeActionExecutor.java:507)
	at com.google.devtools.build.lib.skyframe.ActionExecutionFunction.checkCacheAndExecuteIfNeeded(ActionExecutionFunction.java:826)
	at com.google.devtools.build.lib.skyframe.ActionExecutionFunction.computeInternal(ActionExecutionFunction.java:323)
	... 6 more

This was still a build with no files changed

230203 22:39:28.285:I 35 [com.google.devtools.build.lib.skyframe.SequencedSkyframeExecutor.detectModifiedOutputFiles] Found 0 modified files from last build

but I'd just switched back to bazel 6.0.0 after doing a build with 5.2.3 so it of course restarted the server.

I also noticed this later in the log:

230203 22:41:22.135:I 35 [com.google.devtools.build.lib.runtime.BlazeCommandDispatcher.exec] Exit status was DetailedExitCode{exitCode=REMOTE_ERROR, failureDetail=message: "remote spawn failed: io.grpc.StatusRuntimeException: CANCELLED: io.grpc.Context was cancelled without error"
spawn {
  code: EXECUTION_FAILED
}
}

Though perhaps that's redundant with the exception trace.

benjaminp added a commit to benjaminp/bazel that referenced this issue Feb 6, 2023
…ent.

The gRPC remote execution client frequently "converts" gRPC calls into `ListenableFuture`s by setting a `SettableFuture` in the `onCompleted` or `onError` gRPC stub callbacks. If the future has direct executor callbacks, those callbacks will execute with the gRPC Context of the freshly completed call. That is problematic if the `Context` was canceled (canceling the call `Context` is good hygiene after completing a gRPC call), and the future callback goes to make further gRPC calls.

Therefore, this change removes all usage of gRPC `Context` cancellation. It would be nice if there was instead some way to avoid leaking `Context`s between calls instead of having totally forswear `Context` cancellation. However, I can't see a good way to enforce proper isolation.

Fixes bazelbuild#17298.
ShreeM01 added a commit that referenced this issue Feb 9, 2023
…ent. (#17438)

The gRPC remote execution client frequently "converts" gRPC calls into `ListenableFuture`s by setting a `SettableFuture` in the `onCompleted` or `onError` gRPC stub callbacks. If the future has direct executor callbacks, those callbacks will execute with the gRPC Context of the freshly completed call. That is problematic if the `Context` was canceled (canceling the call `Context` is good hygiene after completing a gRPC call), and the future callback goes to make further gRPC calls.

Therefore, this change removes all usage of gRPC `Context` cancellation. It would be nice if there was instead some way to avoid leaking `Context`s between calls instead of having totally forswear `Context` cancellation. However, I can't see a good way to enforce proper isolation.

Fixes #17298.

Closes #17426.

PiperOrigin-RevId: 507730469
Change-Id: Iea74acad4592952700e41d34672f6478de509d5e

Co-authored-by: Benjamin Peterson <benjamin@engflow.com>
hvadehra pushed a commit that referenced this issue Feb 14, 2023
…ent.

The gRPC remote execution client frequently "converts" gRPC calls into `ListenableFuture`s by setting a `SettableFuture` in the `onCompleted` or `onError` gRPC stub callbacks. If the future has direct executor callbacks, those callbacks will execute with the gRPC Context of the freshly completed call. That is problematic if the `Context` was canceled (canceling the call `Context` is good hygiene after completing a gRPC call), and the future callback goes to make further gRPC calls.

Therefore, this change removes all usage of gRPC `Context` cancellation. It would be nice if there was instead some way to avoid leaking `Context`s between calls instead of having totally forswear `Context` cancellation. However, I can't see a good way to enforce proper isolation.

Fixes #17298.

Closes #17426.

PiperOrigin-RevId: 507730469
Change-Id: Iea74acad4592952700e41d34672f6478de509d5e
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
P2 We'll consider working on this in future. (Assignee optional) team-Remote-Exec Issues and PRs for the Execution (Remote) team type: bug
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants