fix: do not error during pytest teardown after test failure #5184
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.
During pytest teardown, we explicitly kill all microvms that a test might have left behind. We do this by reading Firecracker's pid file and then SIGKILL-ing the process. However, if a test fails, we also try to upload its entire jail to S3 as buildkite artifacts, for post-mortem analysis. Here, we are moving instead of copying files, to save on disk space. This is a problem though, as the pid file is inside the jail, and this moving happens before the call to .kill() (and has to happen before, as killing a VM cleans up its jail). This leads to duplicate pytest errors every time a test fails: One for the actual failure, and then a second failure from Microvm.kill() due to the pid file not being found.
Fix this by reverting the commit that changed the copy to a move - we copy outside of the RAM disk, so space is not actually a concern
Changes
...
Reason
...
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 checkstyleto 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.