BulkTransferException hides underlying cause
- Dominant language
- Java
- Stars
- 25.8k
- Forks
- 4.6k
- Avg merge
- 2d 20h
- Merged PRs (30d)
- 72
Description
### Description of the bug:
We are looking into a customer issue that looks like this:
```
Failed to fetch blobs because of a remote cache error.: 29 errors during bulk transfer:
java.io.IOException: io.grpc.StatusRuntimeException: UNAVAILABLE: io exception
java.io.IOException: (repeated 28x)
```
(nitpick: there is ".:" in the message)
it would be helpful if we could see the entire IOException, rather than 29 copies of the same message.
This was with bazel 7.7.1, but according to https://cs.opensource.google/bazel/bazel/+/master:src/main/java/com/google/devtools/build/lib/remote/common/BulkTransferException.java;l=43;bpv=0;bpt=1 HEAD has the same problem.
### Which category does this issue belong to?
Remote execution
### What's the simplest, easiest way to reproduce this bug? Please provide a minimal example if possible.
if we had a reproducer, we wouldn't need more details in the error message.
### Which operating system are you running Bazel on?
Linux
### What is the output of `bazel info release`?
this is with bazel 7.7.1
### Have you found anything relevant by searching the web?
https://github.com/bazelbuild/bazel/issues/14985 is related.
Contributor guide
Research direction
Start with src/main/java/com/google/devtools/build/lib/remote/common/BulkTransferException.java and compare its current behavior with the related discussion in issue #14985. Trace how the bulk-transfer errors are assembled, then verify that the output preserves the full underlying IOException rather than repeating only its message and that the extra punctuation is corrected.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- build-system, distributed-systems
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 58/100