Repository navigation
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
logVMStatusAfterBoot) from right aftertart runto right after the VM has an IP. The log line stays the same; it now shows up afterVM IP.Why
tart statusrunstart list, which runsdiskutil image infoon every VM's disk. When that lands in the first ~0.1-0.3 s aftertart run, a VM with an ASIF disk can't lock its own disk and Virtualization.framework stops it:Raw disks are not affected. ASIF disks come with macOS 27 base images (e.g., Cirrus base images), so a runner on such an image failed to boot almost every time and its slot never came online.
Once the VM has an IP it holds its disk lock, and
tart listcan't hurt it anymore (it already runs against running VMs in the health check). That's also where CI tools usually check a VM's status: after it has an IP, not right after it starts.Plain Tart, no sand (3 tries each, same on Tart 2.40.1 and 2.41.1):
tart listaftertart runTesting
swift buildandswift test: all 60 tests pass.VM IP. Withtart listrunning in a loop next to it: 21/23 booted first try, the other 2 recovered on the restart 1 s later.tart status(health check) can still land in a starting VM's first fraction of a second. It's rare and sand restarts the VM, so this PR doesn't cover it.