From 601d02b90f2c35884dd6df8e6e2b682b181ec566 Mon Sep 17 00:00:00 2001 From: cndoit18 Date: Wed, 29 Dec 2021 18:09:14 +0800 Subject: [PATCH] refactor(kubelet): use errors.Is(err, os.ErrProcessDone) use errors.Is(err, os.ErrProcessDone) here and remove "process already finished" string comparison. Signed-off-by: cndoit18 --- pkg/kubelet/cm/pod_container_manager_linux.go | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/pkg/kubelet/cm/pod_container_manager_linux.go b/pkg/kubelet/cm/pod_container_manager_linux.go index 53cd74e6854..c225029fbf8 100644 --- a/pkg/kubelet/cm/pod_container_manager_linux.go +++ b/pkg/kubelet/cm/pod_container_manager_linux.go @@ -17,6 +17,7 @@ limitations under the License. package cm import ( + "errors" "fmt" "io/ioutil" "os" @@ -127,10 +128,7 @@ func (m *podContainerManagerImpl) killOnePid(pid int) error { p, _ := os.FindProcess(pid) if err := p.Kill(); err != nil { // If the process already exited, that's fine. - if strings.Contains(err.Error(), "process already finished") { - // Hate parsing strings, but - // vendor/github.com/opencontainers/runc/libcontainer/ - // also does this. + if errors.Is(err, os.ErrProcessDone) { klog.V(3).InfoS("Process no longer exists", "pid", pid) return nil }