Fix test_failing_filter
intermittent issue
#5444
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.
Changes
Change
test_failing_filter
to catch all types of exceptions when trying to start a microVM.Reason
We intermittently get failures in this test while destroying the microVM object given to us by the fixture. That code checks that the microVM was not killed due to a signal and in this case, it clearly has (that's the intention of the test). The test itself is marking the microVM as killed so the cleanup logic should never reach that check.
The only way that kill() fails in this case is when test_microvm.mark_killed() (the last command in this test) is never called, meaning that the test errors out before that. I believe that the only point in the code that can cause the test to exit earlier is this:
We are expecting test_microvm.start() to fail due to seccomp violations, however we are only catching the ConnectionError exception. If any other exception is raised the test will fail pre-maturely without setting test_microvm.mark_killed(). In fact, looking at the backtrace from intermittent errors it looks like the code
is actually raising a ConnectionResetError.
License Acceptance
By submitting this pull request, I confirm that my contribution is made under
the terms of the Apache 2.0 license. For more information on following Developer
Certificate of Origin and signing off your commits, please check
CONTRIBUTING.md
.PR Checklist
tools/devtool checkbuild --all
to verify that the PR passesbuild checks on all supported architectures.
tools/devtool checkstyle
to verify that the PR passes theautomated style checks.
how they are solving the problem in a clear and encompassing way.
in the PR.
CHANGELOG.md
.Runbook for Firecracker API changes.
integration tests.
TODO
.rust-vmm
.