Skip to content

Skip TCP launch timeout if result files are copied directly#1445

Merged
kotlarmilos merged 8 commits intodotnet:mainfrom
kotlarmilos:bugfix/tcp-launch-timeouts
Jul 25, 2025
Merged

Skip TCP launch timeout if result files are copied directly#1445
kotlarmilos merged 8 commits intodotnet:mainfrom
kotlarmilos:bugfix/tcp-launch-timeouts

Conversation

@kotlarmilos
Copy link
Member

@kotlarmilos kotlarmilos commented Jul 23, 2025

Description

On iOS 18 and later (devices and simulators), result files are copied directly from the app container instead of being transmitted over TCP. In these cases, the TCP launch timeout logic is skipped to avoid terminating tests when no TCP connection is established.

Changes

  • Skip TCP launch timeout logic for Apple mobile platforms on iOS 18+
  • Extend resultFileHandler with an IsVersionSupported method
  • Update resultFileHandler to throw an exception if the version format is invalid

Contributes to dotnet/runtime#117714

@kotlarmilos kotlarmilos self-assigned this Jul 23, 2025
@kotlarmilos kotlarmilos added the apple iOS/tvOS/WatchOS/Mac Catalyst area label Jul 23, 2025
@kotlarmilos
Copy link
Member Author

@rolfbjarne We're encountering the following issue again:

[14:40:31] dbug: Running /private/tmp/helix/working/B1AE0973/p/microsoft.dotnet.xharness.cli/10.0.0-ci/tools/net8.0/any/../../../runtimes/any/native/mlaunch/bin/mlaunch --sdkroot /Applications/Xcode_16.1.app --disable-memory-limits --devname 00008030-00114C222185402E --launchdevbundleid net.dot.iOS.Simulator.PInvoke.Test --wait-for-exit -v -v -v -v -v
[14:40:39] dbug: Process mlaunch exited with 42
[14:40:39] fail: App run has failed. mlaunch exited with 42

Do you know what might be causing this? Is the mlaunch invocation incorrect?

Note this happens when using scouting queues (18.x) only.

@akoeplinger
Copy link
Member

Process mlaunch exited with 42

That test is supposed to be exiting with 42 so it looks like mlaunch is somehow using that as its own exit code

@rolfbjarne
Copy link
Member

Process mlaunch exited with 42

That test is supposed to be exiting with 42 so it looks like mlaunch is somehow using that as its own exit code

Yes, that's correct, mlaunch will forward the exit code if it can.

@kotlarmilos kotlarmilos merged commit dfe773f into dotnet:main Jul 25, 2025
17 checks passed
kotlarmilos added a commit to kotlarmilos/xharness that referenced this pull request Mar 16, 2026
)

* Skip TCP launch timeout if result files are copied directly

* Test scouting queues

* Add regex for mlaunch exit code detection in iOSExitCodeDetector

* Fix exit code check in RunOrchestrator to use expectedExitCode

* Capture non-zero exit codes from application runs

* Switch back to the default queues
kotlarmilos added a commit to kotlarmilos/xharness that referenced this pull request Mar 16, 2026
)

* Skip TCP launch timeout if result files are copied directly

* Test scouting queues

* Add regex for mlaunch exit code detection in iOSExitCodeDetector

* Fix exit code check in RunOrchestrator to use expectedExitCode

* Capture non-zero exit codes from application runs

* Switch back to the default queues
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

apple iOS/tvOS/WatchOS/Mac Catalyst area

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants