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 [email protected] Reland "Unpin google_mobile_ads" (flutter/flutter#180838)
2026-04-21 [email protected] fix: correct LicenseRegistry docs to reference NOTICES instead of LICENSE (flutter/flutter#184572)
2026-04-21 [email protected] Roll Skia from f8637ade3d92 to a234f0ed7245 (2 revisions) (flutter/flutter#185334)
2026-04-21 [email protected] Roll Skia from 3b338913f623 to f8637ade3d92 (9 revisions) (flutter/flutter#185331)
2026-04-21 [email protected] Fix non-minimal relative imports in flutter_tools (flutter/flutter#183971)
2026-04-21 [email protected] Reapply "Unpin sdk package dependencies" (flutter/flutter#185268)
2026-04-21 [email protected] Remove unused private header (flutter/flutter#185260)
2026-04-20 [email protected] [iOS] Improve LaunchEngine implementation/API/docs (flutter/flutter#185200)
2026-04-20 [email protected] [ios][pv] Reland platform view hitTest approach (again) (flutter/flutter#185126)
2026-04-20 [email protected] Roll Skia from 75c2791c6274 to 3b338913f623 (3 revisions) (flutter/flutter#185304)
2026-04-20 [email protected] ignore avoid_type_to_string lint rule (flutter/flutter#184765)
2026-04-20 [email protected] Fix race condition in modifying release manifest. (flutter/flutter#185185)
2026-04-20 [email protected] 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 [email protected] [wimp] Implement images for wimp. (flutter/flutter#183913)
2026-04-20 [email protected] add the next batch for VPAT assessment (flutter/flutter#185053)
2026-04-20 [email protected] Roll Packages from c2e3d1f to 01c505f (21 revisions) (flutter/flutter#185287)
2026-04-20 [email protected] Avoid use of direct string injection in GitHub Workflow "run" steps. (flutter/flutter#185301)
2026-04-20 [email protected] Regenerate pubspec.lock (flutter/flutter#185290)
2026-04-20 [email protected] Report an error if the git ls-tree command fails in the content_aware_hash script (flutter/flutter#185170)
2026-04-20 [email protected] Roll Skia from d8415c5d7b91 to 75c2791c6274 (40 revisions) (flutter/flutter#185284)
2026-04-20 [email protected] Move widget_preview_scaffold into pub workspace (flutter/flutter#185176)
2026-04-20 [email protected] [record_use] Run build hooks and link hooks in separate targets (flutter/flutter#184880)
2026-04-20 [email protected] feat: add reloadIsRestart to handle hot reload as a restart for web #179448 (flutter/flutter#183233)
2026-04-20 [email protected] 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 [email protected] 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 [email protected] Reland "Unpin google_mobile_ads" (flutter/flutter#180838)
2026-04-21 [email protected] fix: correct LicenseRegistry docs to reference NOTICES instead of LICENSE (flutter/flutter#184572)
2026-04-21 [email protected] Roll Skia from f8637ade3d92 to a234f0ed7245 (2 revisions) (flutter/flutter#185334)
2026-04-21 [email protected] Roll Skia from 3b338913f623 to f8637ade3d92 (9 revisions) (flutter/flutter#185331)
2026-04-21 [email protected] Fix non-minimal relative imports in flutter_tools (flutter/flutter#183971)
2026-04-21 [email protected] Reapply "Unpin sdk package dependencies" (flutter/flutter#185268)
2026-04-21 [email protected] Remove unused private header (flutter/flutter#185260)
2026-04-20 [email protected] [iOS] Improve LaunchEngine implementation/API/docs (flutter/flutter#185200)
2026-04-20 [email protected] [ios][pv] Reland platform view hitTest approach (again) (flutter/flutter#185126)
2026-04-20 [email protected] Roll Skia from 75c2791c6274 to 3b338913f623 (3 revisions) (flutter/flutter#185304)
2026-04-20 [email protected] ignore avoid_type_to_string lint rule (flutter/flutter#184765)
2026-04-20 [email protected] Fix race condition in modifying release manifest. (flutter/flutter#185185)
2026-04-20 [email protected] 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 [email protected] [wimp] Implement images for wimp. (flutter/flutter#183913)
2026-04-20 [email protected] add the next batch for VPAT assessment (flutter/flutter#185053)
2026-04-20 [email protected] Roll Packages from c2e3d1f to 01c505f (21 revisions) (flutter/flutter#185287)
2026-04-20 [email protected] Avoid use of direct string injection in GitHub Workflow "run" steps. (flutter/flutter#185301)
2026-04-20 [email protected] Regenerate pubspec.lock (flutter/flutter#185290)
2026-04-20 [email protected] Report an error if the git ls-tree command fails in the content_aware_hash script (flutter/flutter#185170)
2026-04-20 [email protected] Roll Skia from d8415c5d7b91 to 75c2791c6274 (40 revisions) (flutter/flutter#185284)
2026-04-20 [email protected] Move widget_preview_scaffold into pub workspace (flutter/flutter#185176)
2026-04-20 [email protected] [record_use] Run build hooks and link hooks in separate targets (flutter/flutter#184880)
2026-04-20 [email protected] feat: add reloadIsRestart to handle hot reload as a restart for web #179448 (flutter/flutter#183233)
2026-04-20 [email protected] 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 [email protected] 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