allow client to remove created tasks with PID 0
Fixes #7357 If a container is restored from a checkpoint that has a configuration error, the task for the restored container is created, but fails to start and is left in the state CREATED with a PID of 0. Before this change, the only way to remove this task was to find the PID of the shim monitoring the task and kill that process. Now, ctr t rm <task> will work on tasks that result in the CREATED state with PID 0. Signed-off-by: Gavin Inglis <giinglis@amazon.com>
This commit is contained in:
parent
e1abaeb386
commit
80839f11e2
5
task.go
5
task.go
@ -311,6 +311,11 @@ func (t *task) Delete(ctx context.Context, opts ...ProcessDeleteOpts) (*ExitStat
|
||||
// On windows Created is akin to Stopped
|
||||
break
|
||||
}
|
||||
if t.pid == 0 {
|
||||
// allow for deletion of created tasks with PID 0
|
||||
// https://github.com/containerd/containerd/issues/7357
|
||||
break
|
||||
}
|
||||
fallthrough
|
||||
default:
|
||||
return nil, fmt.Errorf("task must be stopped before deletion: %s: %w", status.Status, errdefs.ErrFailedPrecondition)
|
||||
|
Loading…
Reference in New Issue
Block a user