mirror of
https://github.com/containers/podman.git
synced 2025-10-17 19:24:04 +08:00
Add ContainerStateExited and OCI delete() in cleanup()
To work better with Kata containers, we need to delete() from the OCI runtime as a part of cleanup, to ensure resources aren't retained longer than they need to be. To enable this, we need to add a new state to containers, ContainerStateExited. Containers transition from ContainerStateStopped to ContainerStateExited via cleanupRuntime which is invoked as part of cleanup(). A container in the Exited state is identical to Stopped, except it has been removed from the OCI runtime and thus will be handled differently when initializing the container. Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
This commit is contained in:
@ -222,7 +222,7 @@ func (r *Runtime) removePod(ctx context.Context, p *Pod, removeCtrs, force bool)
|
||||
// As we have guaranteed their dependencies are in the pod
|
||||
for _, ctr := range ctrs {
|
||||
// Clean up network namespace, cgroups, mounts
|
||||
if err := ctr.cleanup(); err != nil {
|
||||
if err := ctr.cleanup(ctx); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@ -233,7 +233,8 @@ func (r *Runtime) removePod(ctx context.Context, p *Pod, removeCtrs, force bool)
|
||||
|
||||
// Delete the container from runtime (only if we are not
|
||||
// ContainerStateConfigured)
|
||||
if ctr.state.State != ContainerStateConfigured {
|
||||
if ctr.state.State != ContainerStateConfigured &&
|
||||
ctr.state.State != ContainerStateExited {
|
||||
if err := ctr.delete(ctx); err != nil {
|
||||
return err
|
||||
}
|
||||
|
Reference in New Issue
Block a user