runc delete: do not ignore error from destroy

If container.Destroy() has failed, runc destroy still return 0, which is
wrong and can result in other issues down the line.

Let's always return error from destroy in runc delete.

For runc checkpoint and runc run, we still treat it as a warning.

Co-authored-by: Zhang Tianyang <burning9699@gmail.com>
Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
This commit is contained in:
Kir Kolyshkin
2023-11-06 15:38:11 -08:00
parent d3d7f7d85a
commit 7396ca90fa
4 changed files with 12 additions and 14 deletions

View File

@@ -88,12 +88,6 @@ func newProcess(p specs.Process) (*libcontainer.Process, error) {
return lp, nil
}
func destroy(container *libcontainer.Container) {
if err := container.Destroy(); err != nil {
logrus.Error(err)
}
}
// setupIO modifies the given process config according to the options.
func setupIO(process *libcontainer.Process, rootuid, rootgid int, createTTY, detach bool, sockpath string) (*tty, error) {
if createTTY {
@@ -303,7 +297,9 @@ func (r *runner) run(config *specs.Process) (int, error) {
func (r *runner) destroy() {
if r.shouldDestroy {
destroy(r.container)
if err := r.container.Destroy(); err != nil {
logrus.Warn(err)
}
}
}