Skip to content

[5.1] Remote: Postpone the block waiting in afterCommand to BlockWaitingModule#14833

Merged
Wyverald merged 1 commit intobazelbuild:release-5.1.0from
brentleyjones:bj/remote-postpone-the-block-waiting-in-aftercommand-to-blockwaitingmodule
Feb 16, 2022
Merged

[5.1] Remote: Postpone the block waiting in afterCommand to BlockWaitingModule#14833
Wyverald merged 1 commit intobazelbuild:release-5.1.0from
brentleyjones:bj/remote-postpone-the-block-waiting-in-aftercommand-to-blockwaitingmodule

Conversation

@brentleyjones
Copy link
Copy Markdown
Contributor

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.

(cherry picked from commit 621649d)

Closes #14703.

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

team-Remote-Exec Issues and PRs for the Execution (Remote) team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants