Skip to content

Fix race condition in modifying release manifest.#185185

Merged
auto-submit[bot] merged 5 commits into
flutter:masterfrom
eyebrowsoffire:transactional_manifest
Apr 20, 2026
Merged

Fix race condition in modifying release manifest.#185185
auto-submit[bot] merged 5 commits into
flutter:masterfrom
eyebrowsoffire:transactional_manifest

Conversation

@eyebrowsoffire

Copy link
Copy Markdown
Contributor
  • Narrow the window for conflicts by archiving the release first before downloading the manifest.
  • Use x-goog-if-generation-match header to avoid stomping other changes.

* Narrow the window for conflicts by archiving the release first before
  downloading the manifest.
* Use `x-goog-if-generation-match` header to avoid stomping other changes.
@eyebrowsoffire eyebrowsoffire added the CICD Run CI/CD label Apr 17, 2026
@github-actions github-actions Bot removed the CICD Run CI/CD label Apr 17, 2026
@eyebrowsoffire eyebrowsoffire added the CICD Run CI/CD label Apr 17, 2026
Comment thread dev/bots/prepare_package/archive_publisher.dart Outdated
Comment thread dev/bots/prepare_package.dart
Comment thread dev/bots/unpublish_package.dart Outdated
Comment thread dev/bots/prepare_package/transactional_update.dart
Comment thread dev/bots/prepare_package/transactional_update.dart Outdated
Comment thread dev/bots/prepare_package/transactional_update.dart Outdated
@github-actions github-actions Bot removed the CICD Run CI/CD label Apr 17, 2026
@eyebrowsoffire eyebrowsoffire added the CICD Run CI/CD label Apr 17, 2026
@eyebrowsoffire eyebrowsoffire marked this pull request as ready for review April 17, 2026 18:04

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request implements a transactionalUpdate utility for atomic file updates in Google Cloud Storage using generation IDs and retries. The ArchivePublisher and ArchiveUnpublisher classes are updated to use this mechanism, and JSON handling is transitioned to Map<String, Object?> for improved type safety. Review feedback recommends throwing an UnpublishException when encountering empty metadata during unpublishing and suggests reusing a single Random instance within the retry logic for improved efficiency.

Comment thread dev/bots/unpublish_package.dart
Comment thread dev/bots/prepare_package/transactional_update.dart
Comment thread dev/bots/prepare_package/transactional_update.dart
Comment thread dev/bots/prepare_package/transactional_update.dart
Comment thread dev/bots/unpublish_package.dart
@github-actions github-actions Bot removed the CICD Run CI/CD label Apr 17, 2026
@eyebrowsoffire eyebrowsoffire added the CICD Run CI/CD label Apr 17, 2026
@eyebrowsoffire eyebrowsoffire requested a review from jtmcdole April 17, 2026 19:25
@eyebrowsoffire eyebrowsoffire added the autosubmit Merge PR when tree becomes green via auto submit App label Apr 20, 2026
@auto-submit auto-submit Bot added this pull request to the merge queue Apr 20, 2026
Merged via the queue into flutter:master with commit 5a8e6a5 Apr 20, 2026
17 checks passed
@flutter-dashboard flutter-dashboard Bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Apr 20, 2026
auto-submit Bot pushed a commit to flutter/packages that referenced this pull request Apr 21, 2026
flutter/flutter@2844af6...3d0e822

2026-04-21 goderbauer@google.com Reland "Unpin google_mobile_ads" (flutter/flutter#180838)
2026-04-21 ishaquehassan@gmail.com fix: correct LicenseRegistry docs to reference NOTICES instead of LICENSE (flutter/flutter#184572)
2026-04-21 engine-flutter-autoroll@skia.org Roll Skia from f8637ade3d92 to a234f0ed7245 (2 revisions) (flutter/flutter#185334)
2026-04-21 engine-flutter-autoroll@skia.org Roll Skia from 3b338913f623 to f8637ade3d92 (9 revisions) (flutter/flutter#185331)
2026-04-21 kevmoo@users.noreply.github.com Fix non-minimal relative imports in flutter_tools (flutter/flutter#183971)
2026-04-21 sigurdm@google.com Reapply "Unpin sdk package dependencies" (flutter/flutter#185268)
2026-04-21 robert.ancell@canonical.com Remove unused private header (flutter/flutter#185260)
2026-04-20 chris@bracken.jp [iOS] Improve LaunchEngine implementation/API/docs (flutter/flutter#185200)
2026-04-20 41930132+hellohuanlin@users.noreply.github.com [ios][pv] Reland platform view hitTest approach (again) (flutter/flutter#185126)
2026-04-20 engine-flutter-autoroll@skia.org Roll Skia from 75c2791c6274 to 3b338913f623 (3 revisions) (flutter/flutter#185304)
2026-04-20 srawlins@google.com ignore avoid_type_to_string lint rule (flutter/flutter#184765)
2026-04-20 jacksongardner@google.com Fix race condition in modifying release manifest. (flutter/flutter#185185)
2026-04-20 jason-simmons@users.noreply.github.com In the dev/bots/analyze.dart script, obtain the relevant set of paths from Git instead of crawling the filesystem (flutter/flutter#185058)
2026-04-20 jacksongardner@google.com [wimp] Implement images for wimp. (flutter/flutter#183913)
2026-04-20 47866232+chunhtai@users.noreply.github.com add the next batch for VPAT assessment (flutter/flutter#185053)
2026-04-20 engine-flutter-autoroll@skia.org Roll Packages from c2e3d1f to 01c505f (21 revisions) (flutter/flutter#185287)
2026-04-20 jacksongardner@google.com Avoid use of direct string injection in GitHub Workflow "run" steps. (flutter/flutter#185301)
2026-04-20 bkonyi@google.com Regenerate pubspec.lock (flutter/flutter#185290)
2026-04-20 jason-simmons@users.noreply.github.com Report an error if the git ls-tree command fails in the content_aware_hash script (flutter/flutter#185170)
2026-04-20 engine-flutter-autoroll@skia.org Roll Skia from d8415c5d7b91 to 75c2791c6274 (40 revisions) (flutter/flutter#185284)
2026-04-20 bkonyi@google.com Move widget_preview_scaffold into pub workspace (flutter/flutter#185176)
2026-04-20 dacoharkes@google.com [record_use] Run build hooks and link hooks in separate targets (flutter/flutter#184880)
2026-04-20 arpitgandhi9@users.noreply.github.com feat: add reloadIsRestart to handle hot reload as a restart for web #179448 (flutter/flutter#183233)
2026-04-20 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from aDbXQm6WA0wFCAUp-... to LPa7NLiXEZP2A7IwZ... (flutter/flutter#185269)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages
Please CC stuartmorgan@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
creatorpiyush pushed a commit to creatorpiyush/packages that referenced this pull request Jun 10, 2026
…r#11548)

flutter/flutter@2844af6...3d0e822

2026-04-21 goderbauer@google.com Reland "Unpin google_mobile_ads" (flutter/flutter#180838)
2026-04-21 ishaquehassan@gmail.com fix: correct LicenseRegistry docs to reference NOTICES instead of LICENSE (flutter/flutter#184572)
2026-04-21 engine-flutter-autoroll@skia.org Roll Skia from f8637ade3d92 to a234f0ed7245 (2 revisions) (flutter/flutter#185334)
2026-04-21 engine-flutter-autoroll@skia.org Roll Skia from 3b338913f623 to f8637ade3d92 (9 revisions) (flutter/flutter#185331)
2026-04-21 kevmoo@users.noreply.github.com Fix non-minimal relative imports in flutter_tools (flutter/flutter#183971)
2026-04-21 sigurdm@google.com Reapply "Unpin sdk package dependencies" (flutter/flutter#185268)
2026-04-21 robert.ancell@canonical.com Remove unused private header (flutter/flutter#185260)
2026-04-20 chris@bracken.jp [iOS] Improve LaunchEngine implementation/API/docs (flutter/flutter#185200)
2026-04-20 41930132+hellohuanlin@users.noreply.github.com [ios][pv] Reland platform view hitTest approach (again) (flutter/flutter#185126)
2026-04-20 engine-flutter-autoroll@skia.org Roll Skia from 75c2791c6274 to 3b338913f623 (3 revisions) (flutter/flutter#185304)
2026-04-20 srawlins@google.com ignore avoid_type_to_string lint rule (flutter/flutter#184765)
2026-04-20 jacksongardner@google.com Fix race condition in modifying release manifest. (flutter/flutter#185185)
2026-04-20 jason-simmons@users.noreply.github.com In the dev/bots/analyze.dart script, obtain the relevant set of paths from Git instead of crawling the filesystem (flutter/flutter#185058)
2026-04-20 jacksongardner@google.com [wimp] Implement images for wimp. (flutter/flutter#183913)
2026-04-20 47866232+chunhtai@users.noreply.github.com add the next batch for VPAT assessment (flutter/flutter#185053)
2026-04-20 engine-flutter-autoroll@skia.org Roll Packages from c2e3d1f to 01c505f (21 revisions) (flutter/flutter#185287)
2026-04-20 jacksongardner@google.com Avoid use of direct string injection in GitHub Workflow "run" steps. (flutter/flutter#185301)
2026-04-20 bkonyi@google.com Regenerate pubspec.lock (flutter/flutter#185290)
2026-04-20 jason-simmons@users.noreply.github.com Report an error if the git ls-tree command fails in the content_aware_hash script (flutter/flutter#185170)
2026-04-20 engine-flutter-autoroll@skia.org Roll Skia from d8415c5d7b91 to 75c2791c6274 (40 revisions) (flutter/flutter#185284)
2026-04-20 bkonyi@google.com Move widget_preview_scaffold into pub workspace (flutter/flutter#185176)
2026-04-20 dacoharkes@google.com [record_use] Run build hooks and link hooks in separate targets (flutter/flutter#184880)
2026-04-20 arpitgandhi9@users.noreply.github.com feat: add reloadIsRestart to handle hot reload as a restart for web #179448 (flutter/flutter#183233)
2026-04-20 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from aDbXQm6WA0wFCAUp-... to LPa7NLiXEZP2A7IwZ... (flutter/flutter#185269)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages
Please CC stuartmorgan@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CICD Run CI/CD

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants