Repository navigation
Handle simctl process exceptions during discovery - #186501
Conversation
|
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). View this failed invocation of the CLA check for more information. For the most up to date status, view the checks section at the bottom of the pull request. |
There was a problem hiding this comment.
Code Review
This pull request enhances iOS simulator discovery by verifying simctl availability and adding a try-catch block for ProcessException during command execution, supported by new unit tests. A review comment suggests catching all Exception types instead of only ProcessException to ensure the background polling process remains robust against various I/O or system failures.
676941f to
6b4e8f0
Compare
6b4e8f0 to
8f102e9
Compare
|
An existing Git SHA, To re-trigger presubmits after closing or re-opeing a PR, or pushing a HEAD commit (i.e. with |
|
From triage: @okorohelijah do you have time to take a look? Thanks! |
|
An existing Git SHA, To re-trigger presubmits after closing or re-opeing a PR, or pushing a HEAD commit (i.e. with |
flutter/flutter@f3a4b98...c8f2f16 2026-05-27 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[Flutter GPU] Add explicit draw counts (#186639)" (flutter/flutter#187170) 2026-05-27 [email protected] Roll Dart SDK from 7dcea971af6b to f3db7b7d9801 (2 revisions) (flutter/flutter#187144) 2026-05-27 [email protected] [Flutter GPU] Add explicit draw counts (flutter/flutter#186639) 2026-05-27 [email protected] Roll Skia from f9db7748563e to fa944af10f91 (1 revision) (flutter/flutter#187139) 2026-05-27 [email protected] [Flutter GPU] Flutter GPU ShaderLibrary in-place reload for shader hot reload (flutter/flutter#186793) 2026-05-27 [email protected] Roll Skia from a692cbf38952 to f9db7748563e (8 revisions) (flutter/flutter#187135) 2026-05-27 [email protected] Use local semantics tester in Material button tests (flutter/flutter#186667) 2026-05-27 [email protected] Filter out `a: text input` from `team-framework` PR triage (flutter/flutter#187129) 2026-05-27 [email protected] [Engine] Fix silent buffer mismatch bug in FML Win32 CommandLineFromPlatform (flutter/flutter#187120) 2026-05-27 [email protected] examples: Remove unused parameters (flutter/flutter#185819) 2026-05-27 [email protected] Remove another `String.valueOf` (flutter/flutter#186628) 2026-05-27 [email protected] Print trace when skipping flavor-specific and platform-specific assets (flutter/flutter#187045) 2026-05-26 [email protected] Fix `InteractiveViewer` memory leak from undisposed `CurvedAnimation`s (flutter/flutter#185826) 2026-05-26 [email protected] Fix AccessibilityBridge startup crash on vendor-modified Android (flutter/flutter#184630) 2026-05-26 [email protected] Update data driven fixes docs (flutter/flutter#186217) 2026-05-26 [email protected] Add more 0x0 size tests part10 (flutter/flutter#186201) 2026-05-26 [email protected] Disable spell check for obscured text (flutter/flutter#186329) 2026-05-26 [email protected] [iOS] Migrate VSyncClient and DisplayLinkManager to Swift (flutter/flutter#187001) 2026-05-26 [email protected] [flutter_tools, devicelab] Add safety filesystem guard to tests (flutter/flutter#186748) 2026-05-26 [email protected] Roll Fuchsia Linux SDK from Itd2Jq_ZIABH2rW7B... to k9EizfEGJO4WwQN9-... (flutter/flutter#187115) 2026-05-26 [email protected] Roll Dart SDK from 00e625453c43 to 7dcea971af6b (1 revision) (flutter/flutter#187117) 2026-05-26 [email protected] Remove use of deprecated copy_trees. (flutter/flutter#187091) 2026-05-26 [email protected] Use resolved implementation plugins with SwiftPM (flutter/flutter#187097) 2026-05-26 [email protected] Roll Skia from 27a819894f7c to a692cbf38952 (3 revisions) (flutter/flutter#187109) 2026-05-26 [email protected] Roll Packages from 69cf959 to fc795e5 (4 revisions) (flutter/flutter#187114) 2026-05-26 [email protected] Handle simctl process exceptions during discovery (flutter/flutter#186501) 2026-05-26 [email protected] Clarify precache enabled platforms help (flutter/flutter#186878) 2026-05-26 [email protected] [tool] Refactor artifacts.dart to use enhanced enums and reduce duplication (flutter/flutter#187063) 2026-05-26 [email protected] Build script updates for syncing engine sources and building artifacts on linux-arm64 (flutter/flutter#186917) 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],[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
…r#11795) flutter/flutter@f3a4b98...c8f2f16 2026-05-27 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[Flutter GPU] Add explicit draw counts (#186639)" (flutter/flutter#187170) 2026-05-27 [email protected] Roll Dart SDK from 7dcea971af6b to f3db7b7d9801 (2 revisions) (flutter/flutter#187144) 2026-05-27 [email protected] [Flutter GPU] Add explicit draw counts (flutter/flutter#186639) 2026-05-27 [email protected] Roll Skia from f9db7748563e to fa944af10f91 (1 revision) (flutter/flutter#187139) 2026-05-27 [email protected] [Flutter GPU] Flutter GPU ShaderLibrary in-place reload for shader hot reload (flutter/flutter#186793) 2026-05-27 [email protected] Roll Skia from a692cbf38952 to f9db7748563e (8 revisions) (flutter/flutter#187135) 2026-05-27 [email protected] Use local semantics tester in Material button tests (flutter/flutter#186667) 2026-05-27 [email protected] Filter out `a: text input` from `team-framework` PR triage (flutter/flutter#187129) 2026-05-27 [email protected] [Engine] Fix silent buffer mismatch bug in FML Win32 CommandLineFromPlatform (flutter/flutter#187120) 2026-05-27 [email protected] examples: Remove unused parameters (flutter/flutter#185819) 2026-05-27 [email protected] Remove another `String.valueOf` (flutter/flutter#186628) 2026-05-27 [email protected] Print trace when skipping flavor-specific and platform-specific assets (flutter/flutter#187045) 2026-05-26 [email protected] Fix `InteractiveViewer` memory leak from undisposed `CurvedAnimation`s (flutter/flutter#185826) 2026-05-26 [email protected] Fix AccessibilityBridge startup crash on vendor-modified Android (flutter/flutter#184630) 2026-05-26 [email protected] Update data driven fixes docs (flutter/flutter#186217) 2026-05-26 [email protected] Add more 0x0 size tests part10 (flutter/flutter#186201) 2026-05-26 [email protected] Disable spell check for obscured text (flutter/flutter#186329) 2026-05-26 [email protected] [iOS] Migrate VSyncClient and DisplayLinkManager to Swift (flutter/flutter#187001) 2026-05-26 [email protected] [flutter_tools, devicelab] Add safety filesystem guard to tests (flutter/flutter#186748) 2026-05-26 [email protected] Roll Fuchsia Linux SDK from Itd2Jq_ZIABH2rW7B... to k9EizfEGJO4WwQN9-... (flutter/flutter#187115) 2026-05-26 [email protected] Roll Dart SDK from 00e625453c43 to 7dcea971af6b (1 revision) (flutter/flutter#187117) 2026-05-26 [email protected] Remove use of deprecated copy_trees. (flutter/flutter#187091) 2026-05-26 [email protected] Use resolved implementation plugins with SwiftPM (flutter/flutter#187097) 2026-05-26 [email protected] Roll Skia from 27a819894f7c to a692cbf38952 (3 revisions) (flutter/flutter#187109) 2026-05-26 [email protected] Roll Packages from 69cf959 to fc795e5 (4 revisions) (flutter/flutter#187114) 2026-05-26 [email protected] Handle simctl process exceptions during discovery (flutter/flutter#186501) 2026-05-26 [email protected] Clarify precache enabled platforms help (flutter/flutter#186878) 2026-05-26 [email protected] [tool] Refactor artifacts.dart to use enhanced enums and reduce duplication (flutter/flutter#187063) 2026-05-26 [email protected] Build script updates for syncing engine sources and building artifacts on linux-arm64 (flutter/flutter#186917) 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],[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
Issue: Fixes flutter#153776 The crash happens when simulator discovery starts `xcrun simctl list devices booted iOS --json` and the process cannot be started, for example with `Resource temporarily unavailable`. Fix: - Check `Xcode.isSimctlInstalled` in `SimControl.getConnectedDevices` before querying booted simulator JSON directly. - Catch `ProcessException` from the booted-device query, report the simctl execution error, and return no connected simulators instead of letting polling device discovery fail the tool. Tests: - `../../bin/dart test test/general.shard/ios/simulators_test.dart` - `../../bin/dart analyze lib/src/ios/simulators.dart test/general.shard/ios/simulators_test.dart` Risk: - Low. The change is limited to iOS simulator discovery error handling in `flutter_tools`. - Changed files: one source file and one focused test file. - When simctl is unavailable or temporarily fails to start, Flutter now skips simulator discovery for that poll rather than crashing. Co-authored-by: Elijah Okoroh <[email protected]>
Issue: Fixes #153776
The crash happens when simulator discovery starts
xcrun simctl list devices booted iOS --jsonand the process cannot be started, for example withResource temporarily unavailable.Fix:
Xcode.isSimctlInstalledinSimControl.getConnectedDevicesbefore querying booted simulator JSON directly.ProcessExceptionfrom the booted-device query, report the simctl execution error, and return no connected simulators instead of letting polling device discovery fail the tool.Tests:
../../bin/dart test test/general.shard/ios/simulators_test.dart../../bin/dart analyze lib/src/ios/simulators.dart test/general.shard/ios/simulators_test.dartRisk:
flutter_tools.