ci: fix ava hang in CI when v8 coverage is set #7619
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.
Description
This should fix the flakes we've been experiencing in CI with ava workers timing out on exit.
I believe I tracked it down to Node's v8 coverage tooling. Others have reported similar issues.
I seem to have found a work around by forcing the ava worker to write out its coverage file before exiting.
Regardless I also implemented a disablement of the timeout error if the test runner detects that coverage is set, which will allow the tests to no longer flake in CI even if the workaround is not sufficient.
Security Considerations
None
Scaling Considerations
None
Documentation Considerations
None
Testing Considerations
First I managed to locally reproduce the timeout failure fairly consistently (50+%)
Then I added and verified the timeout error disablement kicked in correctly (through the added console logging)
Finally I added the workaround and did not manage to reproduce the timeout.