Retry build when RemoteActionFileSystem encounters a missing digest#25358
Retry build when RemoteActionFileSystem encounters a missing digest#25358fmeum wants to merge 1 commit intobazelbuild:masterfrom
RemoteActionFileSystem encounters a missing digest#25358Conversation
7d8cbef to
9cb500c
Compare
RemoteActionFileSystem encounters a missing digest
RemoteActionFileSystem encounters a missing digestRemoteActionFileSystem encounters a missing digest
|
@justinhorvitz Could you review the interaction with the action rewinding machinery, including the changes I had to make to |
| catastrophe = true; | ||
| } else if (remoteCacheFailed) { | ||
| } else if (BulkTransferException.allCausedByCacheNotFoundException(exception)) { | ||
| // At this point, cache evictions that affect uploaded inputs have already been handled. |
There was a problem hiding this comment.
@coeuvre This is a change in behavior, but I think it's for the better as it avoids retries that are very unlikely to succeed.
|
|
||
| # Incremental build in toplevel build triggers remote cache eviction error | ||
| # but Bazel doesn't automatically retry the build yet. | ||
| # TODO: This documents the current behavior, but it's not intended. |
There was a problem hiding this comment.
@justinhorvitz To fix this, I would need to thread information about lost inputs obtained in
ImportantOutputHandler. I think I roughly understand what that would require, but the two calls to informImportantOutputHandler further above and the mentioning of error bubbling tell me that this is probably pretty difficult to get right. Do you have any advice for me?
coeuvre
left a comment
There was a problem hiding this comment.
Thanks for the PR! I like the direction that you make build rewinding more similar to action rewinding.
If it is not too difficult to do, I would like you to split this PR into 3 PRs for easier reviews:
- A PR that overhauls the build rewinding mechanism.
- A PR that fixes build rewinding for jdeps.
- A PR that contains remaining changes in this PR that don't belong to above 2.
7f44f95 to
d4de887
Compare
|
I split off #25396 with the refactoring, this PR is now stacked on it. |
12b24a3 to
f3fbba5
Compare
f3fbba5 to
29c67f1
Compare
29c67f1 to
2064a9c
Compare
|
@coeuvre This is no longer stacked and ready for another review. |
|
Importing. |
|
@bazel-io fork 8.2.0 |
Cache evictions encountered during reads of remote files in `RemoteActionFileSystem` now result in the build being retried when `--experimental_remote_cache_eviction_retries` is set to a positive value (the default). This is enabled by implementing the `checkForLostInputs` method on the `RemoteOutputService`, building on the refactoring performed in bazelbuild#25396. Closes bazelbuild#25358. PiperOrigin-RevId: 736064349 Change-Id: Idc70d55138c3366d22ece7f0579b242b3c217da8
Cache evictions encountered during reads of remote files in `RemoteActionFileSystem` now result in the build being retried when `--experimental_remote_cache_eviction_retries` is set to a positive value (the default). This is enabled by implementing the `checkForLostInputs` method on the `RemoteOutputService`, building on the refactoring performed in bazelbuild#25396. Closes bazelbuild#25358. PiperOrigin-RevId: 736064349 Change-Id: Idc70d55138c3366d22ece7f0579b242b3c217da8
…g digest (#25538) Cache evictions encountered during reads of remote files in `RemoteActionFileSystem` now result in the build being retried when `--experimental_remote_cache_eviction_retries` is set to a positive value (the default). This is enabled by implementing the `checkForLostInputs` method on the `RemoteOutputService`, building on the refactoring performed in #25396. Closes #25358. PiperOrigin-RevId: 736064349 Change-Id: Idc70d55138c3366d22ece7f0579b242b3c217da8 Commit 85d9cc9 Co-authored-by: Fabian Meumertzheim <[email protected]>
Cache evictions encountered during reads of remote files in
RemoteActionFileSystemnow result in the build being retried when--experimental_remote_cache_eviction_retriesis set to a positive value (the default).This is enabled by implementing the
checkForLostInputsmethod on theRemoteOutputService, building on the refactoring performed in #25396.