-
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
--bes_timeout
is ignored in Bazel 5
#14576
Comments
cc @coeuvre |
After 4.2, we introduced async upload for remote module and we added code to block waiting unfinished futures at the end of build command. However, this piece of code is executed before relevant code in BES module where the flag I have some quick-and-dirty fixes which I am not satisfied with. I have a long-term fix but it maybe too risky to put into 5.0rc4. WDYT if we fix this in 5.1? |
Since 5.0 was just released, whatever the next release is, 5.0.1 or 5.1 sounds good. |
This is not a blocker for us to adopt Bazel 5.0, so we're fine with a fix in a future version. |
@Wyverald its not fixed yet, but once it is, I think this would be good for a 5.0.1. |
Related #14576. PiperOrigin-RevId: 424026771
@bazel-io fork 5.1 |
…Module` When implementing async upload, we introduced a block waiting behaviour in `RemoteModule#afterCommand` so that uploads happened in the background can be waited before the whole build complete. However, there are other block waiting code in other module's `afterCommand` method (e.g. BES module). Block waiting in remote module will prevent other modules' `afterCommand` from executing until it's completed. This causes issues like bazelbuild#14576. This PR adds a new module `BlockWaitingModule` whose sole purpose is to accept tasks submitted by other modules in `afterCommand` and block waiting all the tasks in its own `afterCommand` method. So those tasks can be executed in parallel. This PR only updates RemoteModule's `afterCommand` method to submit block waiting task. Other modules should be updated to use `BlockWaitingModule` as well but that's beyond the scope this this PR. This PR along with 73a76a8 fix bazelbuild#14576. Closes bazelbuild#14618. PiperOrigin-RevId: 424295121 (cherry picked from commit 621649d)
…Module` When implementing async upload, we introduced a block waiting behaviour in `RemoteModule#afterCommand` so that uploads happened in the background can be waited before the whole build complete. However, there are other block waiting code in other module's `afterCommand` method (e.g. BES module). Block waiting in remote module will prevent other modules' `afterCommand` from executing until it's completed. This causes issues like bazelbuild#14576. This PR adds a new module `BlockWaitingModule` whose sole purpose is to accept tasks submitted by other modules in `afterCommand` and block waiting all the tasks in its own `afterCommand` method. So those tasks can be executed in parallel. This PR only updates RemoteModule's `afterCommand` method to submit block waiting task. Other modules should be updated to use `BlockWaitingModule` as well but that's beyond the scope this this PR. This PR along with 73a76a8 fix bazelbuild#14576. Closes bazelbuild#14618. PiperOrigin-RevId: 424295121 (cherry picked from commit 621649d)
…Module` When implementing async upload, we introduced a block waiting behaviour in `RemoteModule#afterCommand` so that uploads happened in the background can be waited before the whole build complete. However, there are other block waiting code in other module's `afterCommand` method (e.g. BES module). Block waiting in remote module will prevent other modules' `afterCommand` from executing until it's completed. This causes issues like bazelbuild#14576. This PR adds a new module `BlockWaitingModule` whose sole purpose is to accept tasks submitted by other modules in `afterCommand` and block waiting all the tasks in its own `afterCommand` method. So those tasks can be executed in parallel. This PR only updates RemoteModule's `afterCommand` method to submit block waiting task. Other modules should be updated to use `BlockWaitingModule` as well but that's beyond the scope this this PR. This PR along with 73a76a8 fix bazelbuild#14576. Closes bazelbuild#14618. PiperOrigin-RevId: 424295121 (cherry picked from commit 621649d)
…Module` (#14833) When implementing async upload, we introduced a block waiting behaviour in `RemoteModule#afterCommand` so that uploads happened in the background can be waited before the whole build complete. However, there are other block waiting code in other module's `afterCommand` method (e.g. BES module). Block waiting in remote module will prevent other modules' `afterCommand` from executing until it's completed. This causes issues like #14576. This PR adds a new module `BlockWaitingModule` whose sole purpose is to accept tasks submitted by other modules in `afterCommand` and block waiting all the tasks in its own `afterCommand` method. So those tasks can be executed in parallel. This PR only updates RemoteModule's `afterCommand` method to submit block waiting task. Other modules should be updated to use `BlockWaitingModule` as well but that's beyond the scope this this PR. This PR along with 73a76a8 fix #14576. Closes #14618. PiperOrigin-RevId: 424295121 (cherry picked from commit 621649d) Co-authored-by: Chi Wang <chiwang@google.com>
Description of the problem / feature request:
--bes_timeout
doesn't seem to be respected anymore in Bazel 5.Bugs: what's the simplest, easiest way to reproduce this bug? Please provide a minimal example if possible.
This will complete successfully and upload the full BES even though it shouldn't because the timeout is set to a very low 1ms:
While this will fail as expected in Bazel 4.2.1:
What operating system are you running Bazel on?
macOS 12.1
The text was updated successfully, but these errors were encountered: