Better handle stuck WebDriver processes #4350
Merged
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.
The first problem with Safari was that it could simply fail to bind the port, in which case we should keep re-trying. This was addressed in #4320.
However there is a second problem: sometimes MacOS decides that the WebDriver doesn't have permissions. In which case the process gets stuck and we never figure out that it failed and therefor also don't retry.
This PR adds an additional detection mechanism where it reads the Stderr output, if something is in there when we just started, it means that the WebDriver failed to start and we just kill it and try again.
Inspired by flutter/engine#48791.