-
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
StopContainer: return if cleanup process changed state #17165
Conversation
The code can be simplified by using a timer directly. [NO NEW TESTS NEEDED] - should not change behavior. Signed-off-by: Valentin Rothberg <[email protected]>
Move the stopSignal decl into the branch where it's actually used. [NO NEW TESTS NEEDED] as it's just a small refactor. Signed-off-by: Valentin Rothberg <[email protected]>
Add a comment when SIGKILL is being used. It may help future readers better comprehend what's going on and why. [NO NEW TESTS NEEDED] - cannot test a comment :^) Signed-off-by: Valentin Rothberg <[email protected]>
Commit 067442b improved stopping/killing a container by detecting whether the cleanup process has already fired and changed the state of the container. Further improve on that by returning early instead of trying to wait for the PID to finish. At that point we know that the container has exited but the previous PID may have been recycled already by the kernel. [NO NEW TESTS NEEDED] - the absence of the two flaking tests recorded in containers#17142 will tell. Fixes: containers#17142 Signed-off-by: Valentin Rothberg <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, just a nit since we are touching this part of the code
libpod/oci_conmon_common.go
Outdated
} | ||
time.Sleep(100 * time.Millisecond) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
since we are touching it, I'd reduce the sleep interval here, we'll detect faster when the container exited. kill(2)
is fast, no need to wait so long: 10ms is more than enough.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice idea! Done ✔️
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: giuseppe, vrothberg 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 |
Kill is a fast syscall, so we can reduce the sleep time from 100ms to 10ms in hope to speed things up a bit. [NO NEW TESTS NEEDED] Signed-off-by: Valentin Rothberg <[email protected]>
/lgtm |
/hold cancel |
Commit 067442b improved stopping/killing a container by detecting
whether the cleanup process has already fired and changed the state of
the container. Further improve on that by returning early instead of
trying to wait for the PID to finish. At that point we know that the
container has exited but the previous PID may have been recycled
already by the kernel.
[NO NEW TESTS NEEDED] - the absence of the two flaking tests recorded
in #17142 will tell.
Fixes: #17142
Signed-off-by: Valentin Rothberg [email protected]
@edsantiago PTAL
@containers/podman-maintainers
Also did some minor refactoring in the function(s).
Does this PR introduce a user-facing change?