Hold startup lock until after pub get to prevent races#184294
Conversation
There was a problem hiding this comment.
Code Review
This pull request modifies the FlutterCommand class to ensure the cache lock is held during pub operations, preventing potential race conditions. It also adds a new test case and necessary fake classes to verify this behavior. A review comment suggests reordering the new imports in the test file to maintain alphabetical order as required by the style guide.
…nd races Fixes flutter#109205. Fixes flutter#90026.
ac564a2 to
6d42e9d
Compare
pub get to prevent racespub get to prevent races
…_prevent_parallel_flutter_command_races
…_prevent_parallel_flutter_command_races
|
autosubmit label was removed for flutter/flutter/184294, because - The status or check suite Mac_arm64 tool_tests_commands has failed. Please fix the issues identified (or deflake) before re-applying this label. |
|
Had to wrap the whole thing in a try-finally to make sure the lock gets released if something crashes. I didn't like the extra indentation though so I extracted the logic into a helper. |
|
Tests are looking good 👍 |
|
@chingjun can you re-approve please? :) |
) The test is a bit involved but the logic change is only one line. Fixes flutter#109205 Fixes flutter#90026 ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [AI contribution guidelines] and understand my responsibilities, or I am not using AI tools. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [ ] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [ ] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [ ] All existing and new tests are passing. --------- Co-authored-by: Ben Konyi <bkonyi@google.com>
Roll Flutter from c1b14e92dcfb to 31f1802cb859 (46 revisions) flutter/flutter@c1b14e9...31f1802 2026-04-16 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Run all flutter/flutter macOS tests using Xcode 26 and iOS 26 simulator (#185083)" (flutter/flutter#185145) 2026-04-16 evanwall@buffalo.edu Add oval drawing support to the SDF uber shader (flutter/flutter#184903) 2026-04-16 okorohelijah@google.com Run all flutter/flutter macOS tests using Xcode 26 and iOS 26 simulator (flutter/flutter#185083) 2026-04-16 engine-flutter-autoroll@skia.org Roll Skia from 2c49b3f9c3c2 to 391cdbe3ffe9 (2 revisions) (flutter/flutter#185138) 2026-04-16 engine-flutter-autoroll@skia.org Roll Dart SDK from 4ee990654146 to fbddcbe0cd96 (1 revision) (flutter/flutter#185137) 2026-04-16 engine-flutter-autoroll@skia.org Roll Skia from f4e3cd2c2159 to 2c49b3f9c3c2 (14 revisions) (flutter/flutter#185131) 2026-04-16 engine-flutter-autoroll@skia.org Roll Dart SDK from 87b7c87e7207 to 4ee990654146 (5 revisions) (flutter/flutter#185108) 2026-04-15 jacksongardner@google.com Use the `flutteractionsbot` token to push the release branch. (flutter/flutter#184833) 2026-04-15 63195100+tjoengCRC@users.noreply.github.com Allow period characters in iOS and macOS framework names (flutter/flutter#184335) 2026-04-15 zemanux@users.noreply.github.com Fix SliverResizingHeader semantic focus (flutter/flutter#179690) 2026-04-15 srawlins@google.com ignore avoid_type_to_string lint rule in flutter_tools (flutter/flutter#184766) 2026-04-15 engine-flutter-autoroll@skia.org Roll Skia from bda7232e6772 to f4e3cd2c2159 (4 revisions) (flutter/flutter#185063) 2026-04-15 stuartmorgan@google.com Add initial AI guidance for issues (flutter/flutter#184885) 2026-04-15 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from rB8LAuZL_DwHMssTU... to IdBT8fSMYrYSip65j... (flutter/flutter#185064) 2026-04-15 jason-simmons@users.noreply.github.com Fix an ordering dependency in the services/system_chrome_test.dart test suite (flutter/flutter#185086) 2026-04-15 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[ios][platform_view]Reland hitTest approach (with a few 2026 update) (#183484)" (flutter/flutter#185082) 2026-04-15 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Run all flutter/flutter macOS tests using Xcode 26 and iOS 26 simulator (#179810)" (flutter/flutter#185067) 2026-04-15 dacoharkes@google.com Agent rule: Dart editing (flutter/flutter#185045) 2026-04-15 41930132+hellohuanlin@users.noreply.github.com [ios][platform_view]Reland hitTest approach (with a few 2026 update) (flutter/flutter#183484) 2026-04-15 okorohelijah@google.com Run all flutter/flutter macOS tests using Xcode 26 and iOS 26 simulator (flutter/flutter#179810) 2026-04-15 engine-flutter-autoroll@skia.org Roll Dart SDK from ee5afcef0596 to 87b7c87e7207 (4 revisions) (flutter/flutter#185060) 2026-04-15 engine-flutter-autoroll@skia.org Roll Skia from 4c382df6a25a to bda7232e6772 (7 revisions) (flutter/flutter#185057) 2026-04-15 brackenavaron@gmail.com Remove material import from toggleable_test.dart + draggable_test.dart + obscured_animated_image_test.dart + sliver_constraints_test.dart (flutter/flutter#181774) 2026-04-15 120367427+master-wayne7@users.noreply.github.com refactor: Remove material imports from Widget tests (flutter/flutter#184877) 2026-04-14 52160996+FMorschel@users.noreply.github.com Adds missing `await`s on forgotten cases (flutter/flutter#183466) 2026-04-14 srawlins@google.com Use an if-element in a collection literal instead of a conditional expression (flutter/flutter#184830) 2026-04-14 50643541+Mairramer@users.noreply.github.com update popular issues documentation (flutter/flutter#183196) 2026-04-14 43054281+camsim99@users.noreply.github.com [Android] Add integration test for setting engine flags via the manifest (flutter/flutter#182241) 2026-04-14 rmacnak@google.com [fuchsia] Ask for both ambient-replace and VMEX to allow for a softer transition. (flutter/flutter#185042) 2026-04-14 goderbauer@google.com Make `multiple_windows` follow repo analyzer rules (flutter/flutter#184753) 2026-04-14 58529443+srujzs@users.noreply.github.com Ignore incoming deprecated_web_configuration lint (flutter/flutter#184130) 2026-04-14 jesswon@google.com [AGP 9] Update AGP Error (flutter/flutter#185043) 2026-04-14 magder@google.com Move widget_preview_scaffold into pub workspace (flutter/flutter#182627) 2026-04-14 planetmarshall@users.noreply.github.com Fix gles interactive tests (flutter/flutter#181389) 2026-04-14 katelovett@google.com Update customer tests.version (flutter/flutter#185044) 2026-04-14 mdebbar@google.com [SKILL] upgrade-browser (flutter/flutter#184894) 2026-04-14 dacoharkes@google.com [ci] Split up integration.shard dart_data_asset_test.dart (flutter/flutter#185021) 2026-04-14 mr-peipei@web.de Hold startup lock until after `pub get` to prevent races (flutter/flutter#184294) 2026-04-14 6226493+andeart@users.noreply.github.com Add `--include-example` flag to `flutter clean` for package example projects (flutter/flutter#183455) 2026-04-14 15619084+vashworth@users.noreply.github.com Disable multi-pack-index when calling flutter from Xcode (flutter/flutter#184998) 2026-04-14 42123156+nvi9@users.noreply.github.com Fix icon tree shaking when building for desktop (flutter/flutter#184249) 2026-04-14 15619084+vashworth@users.noreply.github.com Fix killing wrong xcrun command (flutter/flutter#184831) 2026-04-14 alex.medinsh@gmail.com Allow Xcode build configuration to not contain flavor name (flutter/flutter#183398) 2026-04-14 mdebbar@google.com [web] Async rendering for benchmarks (flutter/flutter#184677) 2026-04-14 dacoharkes@google.com [ci] Split up integration.shard native_assets_test.dart (flutter/flutter#185020) 2026-04-14 737941+loic-sharma@users.noreply.github.com Skip flutter widget-preview test that times out frequently (flutter/flutter#184988) ...
…r#11518) Roll Flutter from c1b14e92dcfb to 31f1802cb859 (46 revisions) flutter/flutter@c1b14e9...31f1802 2026-04-16 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Run all flutter/flutter macOS tests using Xcode 26 and iOS 26 simulator (#185083)" (flutter/flutter#185145) 2026-04-16 evanwall@buffalo.edu Add oval drawing support to the SDF uber shader (flutter/flutter#184903) 2026-04-16 okorohelijah@google.com Run all flutter/flutter macOS tests using Xcode 26 and iOS 26 simulator (flutter/flutter#185083) 2026-04-16 engine-flutter-autoroll@skia.org Roll Skia from 2c49b3f9c3c2 to 391cdbe3ffe9 (2 revisions) (flutter/flutter#185138) 2026-04-16 engine-flutter-autoroll@skia.org Roll Dart SDK from 4ee990654146 to fbddcbe0cd96 (1 revision) (flutter/flutter#185137) 2026-04-16 engine-flutter-autoroll@skia.org Roll Skia from f4e3cd2c2159 to 2c49b3f9c3c2 (14 revisions) (flutter/flutter#185131) 2026-04-16 engine-flutter-autoroll@skia.org Roll Dart SDK from 87b7c87e7207 to 4ee990654146 (5 revisions) (flutter/flutter#185108) 2026-04-15 jacksongardner@google.com Use the `flutteractionsbot` token to push the release branch. (flutter/flutter#184833) 2026-04-15 63195100+tjoengCRC@users.noreply.github.com Allow period characters in iOS and macOS framework names (flutter/flutter#184335) 2026-04-15 zemanux@users.noreply.github.com Fix SliverResizingHeader semantic focus (flutter/flutter#179690) 2026-04-15 srawlins@google.com ignore avoid_type_to_string lint rule in flutter_tools (flutter/flutter#184766) 2026-04-15 engine-flutter-autoroll@skia.org Roll Skia from bda7232e6772 to f4e3cd2c2159 (4 revisions) (flutter/flutter#185063) 2026-04-15 stuartmorgan@google.com Add initial AI guidance for issues (flutter/flutter#184885) 2026-04-15 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from rB8LAuZL_DwHMssTU... to IdBT8fSMYrYSip65j... (flutter/flutter#185064) 2026-04-15 jason-simmons@users.noreply.github.com Fix an ordering dependency in the services/system_chrome_test.dart test suite (flutter/flutter#185086) 2026-04-15 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[ios][platform_view]Reland hitTest approach (with a few 2026 update) (#183484)" (flutter/flutter#185082) 2026-04-15 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Run all flutter/flutter macOS tests using Xcode 26 and iOS 26 simulator (#179810)" (flutter/flutter#185067) 2026-04-15 dacoharkes@google.com Agent rule: Dart editing (flutter/flutter#185045) 2026-04-15 41930132+hellohuanlin@users.noreply.github.com [ios][platform_view]Reland hitTest approach (with a few 2026 update) (flutter/flutter#183484) 2026-04-15 okorohelijah@google.com Run all flutter/flutter macOS tests using Xcode 26 and iOS 26 simulator (flutter/flutter#179810) 2026-04-15 engine-flutter-autoroll@skia.org Roll Dart SDK from ee5afcef0596 to 87b7c87e7207 (4 revisions) (flutter/flutter#185060) 2026-04-15 engine-flutter-autoroll@skia.org Roll Skia from 4c382df6a25a to bda7232e6772 (7 revisions) (flutter/flutter#185057) 2026-04-15 brackenavaron@gmail.com Remove material import from toggleable_test.dart + draggable_test.dart + obscured_animated_image_test.dart + sliver_constraints_test.dart (flutter/flutter#181774) 2026-04-15 120367427+master-wayne7@users.noreply.github.com refactor: Remove material imports from Widget tests (flutter/flutter#184877) 2026-04-14 52160996+FMorschel@users.noreply.github.com Adds missing `await`s on forgotten cases (flutter/flutter#183466) 2026-04-14 srawlins@google.com Use an if-element in a collection literal instead of a conditional expression (flutter/flutter#184830) 2026-04-14 50643541+Mairramer@users.noreply.github.com update popular issues documentation (flutter/flutter#183196) 2026-04-14 43054281+camsim99@users.noreply.github.com [Android] Add integration test for setting engine flags via the manifest (flutter/flutter#182241) 2026-04-14 rmacnak@google.com [fuchsia] Ask for both ambient-replace and VMEX to allow for a softer transition. (flutter/flutter#185042) 2026-04-14 goderbauer@google.com Make `multiple_windows` follow repo analyzer rules (flutter/flutter#184753) 2026-04-14 58529443+srujzs@users.noreply.github.com Ignore incoming deprecated_web_configuration lint (flutter/flutter#184130) 2026-04-14 jesswon@google.com [AGP 9] Update AGP Error (flutter/flutter#185043) 2026-04-14 magder@google.com Move widget_preview_scaffold into pub workspace (flutter/flutter#182627) 2026-04-14 planetmarshall@users.noreply.github.com Fix gles interactive tests (flutter/flutter#181389) 2026-04-14 katelovett@google.com Update customer tests.version (flutter/flutter#185044) 2026-04-14 mdebbar@google.com [SKILL] upgrade-browser (flutter/flutter#184894) 2026-04-14 dacoharkes@google.com [ci] Split up integration.shard dart_data_asset_test.dart (flutter/flutter#185021) 2026-04-14 mr-peipei@web.de Hold startup lock until after `pub get` to prevent races (flutter/flutter#184294) 2026-04-14 6226493+andeart@users.noreply.github.com Add `--include-example` flag to `flutter clean` for package example projects (flutter/flutter#183455) 2026-04-14 15619084+vashworth@users.noreply.github.com Disable multi-pack-index when calling flutter from Xcode (flutter/flutter#184998) 2026-04-14 42123156+nvi9@users.noreply.github.com Fix icon tree shaking when building for desktop (flutter/flutter#184249) 2026-04-14 15619084+vashworth@users.noreply.github.com Fix killing wrong xcrun command (flutter/flutter#184831) 2026-04-14 alex.medinsh@gmail.com Allow Xcode build configuration to not contain flavor name (flutter/flutter#183398) 2026-04-14 mdebbar@google.com [web] Async rendering for benchmarks (flutter/flutter#184677) 2026-04-14 dacoharkes@google.com [ci] Split up integration.shard native_assets_test.dart (flutter/flutter#185020) 2026-04-14 737941+loic-sharma@users.noreply.github.com Skip flutter widget-preview test that times out frequently (flutter/flutter#184988) ...
…r#11518) Roll Flutter from c1b14e92dcfb to 31f1802cb859 (46 revisions) flutter/flutter@c1b14e9...31f1802 2026-04-16 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Run all flutter/flutter macOS tests using Xcode 26 and iOS 26 simulator (#185083)" (flutter/flutter#185145) 2026-04-16 evanwall@buffalo.edu Add oval drawing support to the SDF uber shader (flutter/flutter#184903) 2026-04-16 okorohelijah@google.com Run all flutter/flutter macOS tests using Xcode 26 and iOS 26 simulator (flutter/flutter#185083) 2026-04-16 engine-flutter-autoroll@skia.org Roll Skia from 2c49b3f9c3c2 to 391cdbe3ffe9 (2 revisions) (flutter/flutter#185138) 2026-04-16 engine-flutter-autoroll@skia.org Roll Dart SDK from 4ee990654146 to fbddcbe0cd96 (1 revision) (flutter/flutter#185137) 2026-04-16 engine-flutter-autoroll@skia.org Roll Skia from f4e3cd2c2159 to 2c49b3f9c3c2 (14 revisions) (flutter/flutter#185131) 2026-04-16 engine-flutter-autoroll@skia.org Roll Dart SDK from 87b7c87e7207 to 4ee990654146 (5 revisions) (flutter/flutter#185108) 2026-04-15 jacksongardner@google.com Use the `flutteractionsbot` token to push the release branch. (flutter/flutter#184833) 2026-04-15 63195100+tjoengCRC@users.noreply.github.com Allow period characters in iOS and macOS framework names (flutter/flutter#184335) 2026-04-15 zemanux@users.noreply.github.com Fix SliverResizingHeader semantic focus (flutter/flutter#179690) 2026-04-15 srawlins@google.com ignore avoid_type_to_string lint rule in flutter_tools (flutter/flutter#184766) 2026-04-15 engine-flutter-autoroll@skia.org Roll Skia from bda7232e6772 to f4e3cd2c2159 (4 revisions) (flutter/flutter#185063) 2026-04-15 stuartmorgan@google.com Add initial AI guidance for issues (flutter/flutter#184885) 2026-04-15 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from rB8LAuZL_DwHMssTU... to IdBT8fSMYrYSip65j... (flutter/flutter#185064) 2026-04-15 jason-simmons@users.noreply.github.com Fix an ordering dependency in the services/system_chrome_test.dart test suite (flutter/flutter#185086) 2026-04-15 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[ios][platform_view]Reland hitTest approach (with a few 2026 update) (#183484)" (flutter/flutter#185082) 2026-04-15 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Run all flutter/flutter macOS tests using Xcode 26 and iOS 26 simulator (#179810)" (flutter/flutter#185067) 2026-04-15 dacoharkes@google.com Agent rule: Dart editing (flutter/flutter#185045) 2026-04-15 41930132+hellohuanlin@users.noreply.github.com [ios][platform_view]Reland hitTest approach (with a few 2026 update) (flutter/flutter#183484) 2026-04-15 okorohelijah@google.com Run all flutter/flutter macOS tests using Xcode 26 and iOS 26 simulator (flutter/flutter#179810) 2026-04-15 engine-flutter-autoroll@skia.org Roll Dart SDK from ee5afcef0596 to 87b7c87e7207 (4 revisions) (flutter/flutter#185060) 2026-04-15 engine-flutter-autoroll@skia.org Roll Skia from 4c382df6a25a to bda7232e6772 (7 revisions) (flutter/flutter#185057) 2026-04-15 brackenavaron@gmail.com Remove material import from toggleable_test.dart + draggable_test.dart + obscured_animated_image_test.dart + sliver_constraints_test.dart (flutter/flutter#181774) 2026-04-15 120367427+master-wayne7@users.noreply.github.com refactor: Remove material imports from Widget tests (flutter/flutter#184877) 2026-04-14 52160996+FMorschel@users.noreply.github.com Adds missing `await`s on forgotten cases (flutter/flutter#183466) 2026-04-14 srawlins@google.com Use an if-element in a collection literal instead of a conditional expression (flutter/flutter#184830) 2026-04-14 50643541+Mairramer@users.noreply.github.com update popular issues documentation (flutter/flutter#183196) 2026-04-14 43054281+camsim99@users.noreply.github.com [Android] Add integration test for setting engine flags via the manifest (flutter/flutter#182241) 2026-04-14 rmacnak@google.com [fuchsia] Ask for both ambient-replace and VMEX to allow for a softer transition. (flutter/flutter#185042) 2026-04-14 goderbauer@google.com Make `multiple_windows` follow repo analyzer rules (flutter/flutter#184753) 2026-04-14 58529443+srujzs@users.noreply.github.com Ignore incoming deprecated_web_configuration lint (flutter/flutter#184130) 2026-04-14 jesswon@google.com [AGP 9] Update AGP Error (flutter/flutter#185043) 2026-04-14 magder@google.com Move widget_preview_scaffold into pub workspace (flutter/flutter#182627) 2026-04-14 planetmarshall@users.noreply.github.com Fix gles interactive tests (flutter/flutter#181389) 2026-04-14 katelovett@google.com Update customer tests.version (flutter/flutter#185044) 2026-04-14 mdebbar@google.com [SKILL] upgrade-browser (flutter/flutter#184894) 2026-04-14 dacoharkes@google.com [ci] Split up integration.shard dart_data_asset_test.dart (flutter/flutter#185021) 2026-04-14 mr-peipei@web.de Hold startup lock until after `pub get` to prevent races (flutter/flutter#184294) 2026-04-14 6226493+andeart@users.noreply.github.com Add `--include-example` flag to `flutter clean` for package example projects (flutter/flutter#183455) 2026-04-14 15619084+vashworth@users.noreply.github.com Disable multi-pack-index when calling flutter from Xcode (flutter/flutter#184998) 2026-04-14 42123156+nvi9@users.noreply.github.com Fix icon tree shaking when building for desktop (flutter/flutter#184249) 2026-04-14 15619084+vashworth@users.noreply.github.com Fix killing wrong xcrun command (flutter/flutter#184831) 2026-04-14 alex.medinsh@gmail.com Allow Xcode build configuration to not contain flavor name (flutter/flutter#183398) 2026-04-14 mdebbar@google.com [web] Async rendering for benchmarks (flutter/flutter#184677) 2026-04-14 dacoharkes@google.com [ci] Split up integration.shard native_assets_test.dart (flutter/flutter#185020) 2026-04-14 737941+loic-sharma@users.noreply.github.com Skip flutter widget-preview test that times out frequently (flutter/flutter#184988) ...
The test is a bit involved but the logic change is only one line.
Fixes #109205
Fixes #90026
Pre-launch Checklist
///).