Skip to content

Commit

Permalink
shimv2: fix the issue of stop container failed
Browse files Browse the repository at this point in the history
There is no need to send another SIGKILL signal following
SIGTERM signal, otherwise, sending the SIGKILL signal would
get failed since the container process would has been terminated
by the previous SIGTERM signal.

Fixes:kata-containers#1493

Depends-on:github.com/kata-containers/agent/pull/526

Signed-off-by: lifupan <[email protected]>
  • Loading branch information
lifupan committed Apr 10, 2019
1 parent fef1249 commit 63caffb
Showing 1 changed file with 1 addition and 13 deletions.
14 changes: 1 addition & 13 deletions containerd-shim-v2/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -634,19 +634,7 @@ func (s *service) Kill(ctx context.Context, r *taskAPI.KillRequest) (*ptypes.Emp
processID = execs.id
}

err = s.sandbox.SignalProcess(c.id, processID, signum, r.All)
if err != nil {
return nil, err
}

// Since the k8s will use the SIGTERM signal to stop a container by default, but
// some container processes would ignore this signal such as shell, thus it's better
// to resend another SIGKILL signal to make sure the container process terminated successfully.
if signum == syscall.SIGTERM {
err = s.sandbox.SignalProcess(c.id, processID, syscall.SIGKILL, r.All)
}

return empty, err
return empty, s.sandbox.SignalProcess(c.id, processID, signum, r.All)
}

// Pids returns all pids inside the container
Expand Down

0 comments on commit 63caffb

Please sign in to comment.