Skip to content
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

[7.3.0] Enforce and await cleanup in StarlarkBaseExternalContext #22883

Merged
merged 1 commit into from
Jun 25, 2024

Conversation

fmeum
Copy link
Collaborator

@fmeum fmeum commented Jun 25, 2024

StarlarkBaseExternalContext now implements AutoCloseable and, in close():

  1. Cancels all pending async tasks.
  2. Awaits their termination.
  3. Cleans up the working directory (always for module extensions, on failure for repo rules).
  4. Fails if there were pending async tasks in an otherwise successful evaluation.

Previously, module extensions didn't do any of those. Repo rules did 1 and 4 and sometimes 3, but not in all cases.

This change required replacing the fixed-size thread pool in DownloadManager with virtual threads, thereby resolving a TODO about not using a fixed-size thread pool for the GrpcRemoteDownloader.

Work towards #22680
Work towards #22748

Closes #22772.

PiperOrigin-RevId: 644669599
Change-Id: Ib71e5bf346830b92277ac2bd473e11c834cb2624

Closes #22776

`StarlarkBaseExternalContext` now implements `AutoCloseable` and, in `close()`:
1. Cancels all pending async tasks.
2. Awaits their termination.
3. Cleans up the working directory (always for module extensions, on failure for repo rules).
4. Fails if there were pending async tasks in an otherwise successful evaluation.

Previously, module extensions didn't do any of those. Repo rules did 1 and 4 and sometimes 3, but not in all cases.

This change required replacing the fixed-size thread pool in `DownloadManager` with virtual threads, thereby resolving a TODO about not using a fixed-size thread pool for the `GrpcRemoteDownloader`.

Work towards bazelbuild#22680
Work towards bazelbuild#22748

Closes bazelbuild#22772.

PiperOrigin-RevId: 644669599
Change-Id: Ib71e5bf346830b92277ac2bd473e11c834cb2624
@fmeum fmeum requested a review from a team as a code owner June 25, 2024 07:33
@github-actions github-actions bot added awaiting-review PR is awaiting review from an assigned reviewer team-ExternalDeps External dependency handling, remote repositiories, WORKSPACE file. labels Jun 25, 2024
@meteorcloudy meteorcloudy added this pull request to the merge queue Jun 25, 2024
Merged via the queue into bazelbuild:release-7.3.0 with commit 000a83a Jun 25, 2024
33 checks passed
@github-actions github-actions bot removed the awaiting-review PR is awaiting review from an assigned reviewer label Jun 25, 2024
@fmeum fmeum deleted the 22776-cherry branch June 25, 2024 14:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
team-ExternalDeps External dependency handling, remote repositiories, WORKSPACE file.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants