-
Notifications
You must be signed in to change notification settings - Fork 4.1k
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
Bazel marks files BEP as available in the remote cache even if the upload failed #23250
Comments
I understand that the same thing happens with |
Yes, but looking at b0c5eb3, that seems like expected behavior. However, marking failed uploads as available remotely seems like a bug because Bazel knows the file is most likely not available at the bytestream server. |
It's by design to always use What's your use case that requiring the location for the missing files to be |
Right, I think that discussion makes sense for files bazel didn't attempt to upload. But for files that bazel knows it failed to be uploaded to the bytestream server this results in a confusing BEP to process. Previously, a build event service could interpret a the location of a profile being
With the new behavior either the BES or the client of the BES needs to query the bytestream server to figure out whether the profile actually did get uploaded. Does that answer your question? |
I think the BES client always need to query the bytestream server to figure out whether a file exists -- even if Bazel uploaded the file successfully, the file could still be evicted from the CAS later. |
Description of the bug:
Starting with bazel 7 (b0c5eb3) files in the BEP are referenced
bytestream://
regardless of whether the upload succeeded. We've only noticed this being an issue with files in theBuildToolLogs
event, particularly the profile, but it might affect other uploads.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.
Hard to repro and even harder without a remote cache. We've noticed this happening for invocations that use
bes_upload_mode=fully_async
. But roughly, this is how this can happen:With bazel < 7 the file(s) that failed to upload would have their location set to
file://
, indicating that they never did get uploaded. Starting with bazel 7 the BEP will (incorrectly) claim files are available at abytestream://
URI regardless of whether or not bazel did upload them.Which operating system are you running Bazel on?
MacOS, Linux, Windows
What is the output of
bazel info release
?8.0.0-pre.20240730.1
If
bazel info release
returnsdevelopment version
or(@non-git)
, tell us how you built Bazel.No response
What's the output of
git remote get-url origin; git rev-parse HEAD
?No response
If this is a regression, please try to identify the Bazel commit where the bug was introduced with bazelisk --bisect.
b0c5eb3
Have you found anything relevant by searching the web?
No response
Any other information, logs, or outputs that you want to share?
No response
The text was updated successfully, but these errors were encountered: