Skip to content
This repository has been archived by the owner on May 12, 2021. It is now read-only.

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:#1493

Signed-off-by: lifupan <lifupan@gmail.com>
  • Loading branch information
lifupan committed Apr 11, 2019
1 parent fef1249 commit f7223c6
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 f7223c6

Please sign in to comment.