-
Notifications
You must be signed in to change notification settings - Fork 2.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix flake in upgrade tests #12260
Fix flake in upgrade tests #12260
Conversation
LGTM |
/lgtm |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: Luap99, mheon The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
LGTM but tests aren't happy:
(And I see that someone just pressed Re-run on them all, but I don't think this is a flake) |
Root cause: on a fresh VM such as the ones used in CI, podman/test/upgrade/test-upgrade.bats Lines 126 to 127 in fa8184c
One could do a simple |
The cni plugins need access to /run/cni and the dnsname plugin needs access to /run/containers. The race condition was basically that a `podman stop` could either do the cleanup itself or the spawned cleanup process would do the cleanup if it was fast enough. The `podman stop` is executed on the host while the podman cleanup process is executed in the "parent container". The parent container contains older plugins than on the host. The dnsname plugin before version 1.3 could error and this would prevent CNI from doing a proper cleanup. The plugin errors because it could not find its files in /run/containers. On my system the test always failed because the cleanup process was always faster than the stop process. However in the CI VMs the stop process was usually faster and so it failed only sometimes. Fixes containers#11558 Signed-off-by: Paul Holzinger <[email protected]>
ccfe73b
to
c43b81f
Compare
@edsantiago Should be fixed now: |
/lgtm |
What this PR does / why we need it:
The cni plugins need access to /run/cni and the dnsname plugin needs
access to /run/containers.
The race condition was basically that a
podman stop
could either do thecleanup itself or the spawned cleanup process would do the cleanup if it
was fast enough. The
podman stop
is executed on the host while thepodman cleanup process is executed in the "parent container". The parent
container contains older plugins than on the host. The dnsname plugin
before version 1.3 could error and this would prevent CNI from
doing a proper cleanup. The plugin errors because it could not find its
files in /run/containers. On my system the test always failed because
the cleanup process was always faster than the stop process. However in
the CI VMs the stop process was usually faster and so it failed only
sometimes.
How to verify it
Which issue(s) this PR fixes:
Fixes #11558
Special notes for your reviewer: