-
-
Notifications
You must be signed in to change notification settings - Fork 31.8k
iOS testbed runner prone to failure when two instances start near the same time #129200
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
python/buildmaster-config#573 should be an immediate workaround to avoid the error in CI. |
I'm going to re-open this; it's going to be a problem for other users who want to use the testbed in CI configurations, as it doesn't play nicely with It would also be desirable to increase the parallelization on the iOS worker as well - the CPU is able to handle the load, it's purely the startup ordering sequence that is an issue. |
Add a lock to ensure that only one iOS testbed per user can start at a time, so that the simulator discovery process doesn't collide between instances.
…thonGH-130564) Add a lock to ensure that only one iOS testbed per user can start at a time, so that the simulator discovery process doesn't collide between instances. (cherry picked from commit 9211b3d) Co-authored-by: Russell Keith-Magee <[email protected]>
…H-130564) (#130657) Add a lock to ensure that only one iOS testbed per user can start at a time, so that the simulator discovery process doesn't collide between instances. (cherry picked from commit 9211b3d) Co-authored-by: Russell Keith-Magee <[email protected]>
Reverts python#573 now that python/cpython#129200 has been resolved.
Reverts #573 now that python/cpython#129200 has been resolved.
…thon#130564) Add a lock to ensure that only one iOS testbed per user can start at a time, so that the simulator discovery process doesn't collide between instances.
Bug report
Bug description:
The iOS testbed runner starts an iOS simulator; however, the mechanism that starts the simulator doesn't return the ID of the simulator that was started. The runner needs to know the ID of the simulator that was started so that future commands can be directed at that simulator.
The current implementation of the testbed finds this ID by generating a list of know simulators, and then waiting until another entry appears. This works fine until there are 2 test runs started at near the same time, and the runner is unable to identify which simulator this test run has started. This results in test failures like the following:
A re-run of the same test job will usually fix the problem, but it shouldn't happen in the first place.
This almost never happens locally, because users don't normally start to test runs in parallel. However, it's a set of conditions that is reasonably likely on the CI machine, as it's very easy for a PR and a main CI job to start at the same time (most commonly, when you merge a PR and immediately backport to a previous release).
CPython versions tested on:
3.13
Operating systems tested on:
macOS, Other
Linked PRs
The text was updated successfully, but these errors were encountered: