-
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 does not re-evaluate remote actions, even after shutdown #17366
Comments
It seems to be caused by the change of the flag --experimental_action_cache_store_output_metadata, to be switched to default True in remote_download_toplevel and remote_download_minimal. However, i do not see how this ever is going to work? Is the cache never rotated at Google? |
I think the issue is #16720. Setting That PR was merged as commit Bazel Bazel Bazel I think |
By the way, this problem is also part of Bazel 6.0.0. |
This is WAI. The purpose of flag |
And the support for remote cache eviction is WIP in #16660. |
Was it intended to bring this in as part of 6.0.0 when #16660 is not there? I basically makes |
So how do I solve the problem at hand:
I cannot repair this in any way, except with a Is this really intended? |
Without With Without I don't see why |
Mm I like your intention (since the action phase is the most time consuming right now), but I feel this is not the complete solution. Before I could restart the build when error 34 was detected, and it only occurred if the Bazel server was left running, so local users were seldom affected by it. Now it is just a matter of time before a Do you recommend that all server jobs detect the errorcode 34, and in that case perform a |
If remote cache eviction happens too frequently and you don't want to do a |
@torgil what do you think ? |
I also think this somewhat contradicts this statement: |
I think this needs a bazel binary test-case. I'm trying to do that on relevant issues/patches just to check what capabilities a random bazel binary has. Do we have a good test-environment for bazel remote-execution / remote-cache? |
Currently, when building without the bytes, if Bazel failed to download blobs from CAS when fetching them as inputs to local actions, Bazel fails the build with message like `... --remote_download_outputs=minimal does not work if your remote cache evicts files during builds.` and this message keep showing up until a manually `bazel clean`. This PR fixes that by cleaning up stale state in skyframe and action cache upon remote cache eviction so that a following build can continue without `bazel shutdown` or `bazel clean`. Fixes bazelbuild#17366. Part of bazelbuild#16660. Closes bazelbuild#17462. PiperOrigin-RevId: 510952745 Change-Id: I4fc59a21195565c68375a19ead76738d2208c4ac
* Cleanup stale state when remote cache evicted Currently, when building without the bytes, if Bazel failed to download blobs from CAS when fetching them as inputs to local actions, Bazel fails the build with message like `... --remote_download_outputs=minimal does not work if your remote cache evicts files during builds.` and this message keep showing up until a manually `bazel clean`. This PR fixes that by cleaning up stale state in skyframe and action cache upon remote cache eviction so that a following build can continue without `bazel shutdown` or `bazel clean`. Fixes #17366. Part of #16660. Closes #17462. PiperOrigin-RevId: 510952745 Change-Id: I4fc59a21195565c68375a19ead76738d2208c4ac * Add integration tests for incremental build for Build without the Bytes. PiperOrigin-RevId: 487193345 Change-Id: Id10c9aebad630928a9a33fa22824e4d78041a4d7
Related to #17366. PiperOrigin-RevId: 511849585 Change-Id: I1c4acd469280628b15441a8e7a97ff572c42c1ff
Related to bazelbuild#17366. PiperOrigin-RevId: 511849585 Change-Id: I1c4acd469280628b15441a8e7a97ff572c42c1ff
Related to #17366. PiperOrigin-RevId: 511849585 Change-Id: I1c4acd469280628b15441a8e7a97ff572c42c1ff Co-authored-by: Googler <[email protected]>
Description of the bug:
Currently Bazel does not re-evaluate remote actions towards the remote execution service, even after a shutdown is performed.
This causes errors when:
This leads to a:
(Exit 34): /home/path/to/file.h (No such file or directory)
(BulkTransferException)
And before this could be reparied by rerunning (since this error causes bazel to shutdown). But the behavior now is even after restart, Bazel still remembers the state, and the BulkTransferException remains until a
bazel clean
is performedI am using:
--remote_download_toplevel
What's the simplest, easiest way to reproduce this bug? Please provide a minimal example if possible.
bazel build //something --experimental_remote_grpc_log=first.run.log
bazel shutdown
bazel build //something --experimental_remote_grpc_log=second.run.log
I expect bazel to reevaluate the actions towards the remote server, to see if any needs a re-run.
Which operating system are you running Bazel on?
linux
What is the output of
bazel info release
?7.0.0-pre.20221111.3
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 master; git rev-parse HEAD
?No response
Have you found anything relevant by searching the web?
This is the same issue as #13882, however in 7.0.0, it is enabled by default
How is this ever going to work?
Any other information, logs, or outputs that you want to share?
No response
The text was updated successfully, but these errors were encountered: