diff --git a/pkg/kubelet/dockertools/fake_docker_client.go b/pkg/kubelet/dockertools/fake_docker_client.go index 5995622504b..28c05eb34b7 100644 --- a/pkg/kubelet/dockertools/fake_docker_client.go +++ b/pkg/kubelet/dockertools/fake_docker_client.go @@ -121,7 +121,10 @@ func (f *FakeDockerClient) StartContainer(id string, hostConfig *docker.HostConf Name: id, // For testing purpose, we set name to id Config: &docker.Config{Image: "testimage"}, HostConfig: hostConfig, - State: docker.State{Running: true}, + State: docker.State{ + Running: true, + Pid: 42, + }, } return f.Err } diff --git a/pkg/kubelet/kubelet.go b/pkg/kubelet/kubelet.go index 99495dd7bfb..a7fcc45a956 100644 --- a/pkg/kubelet/kubelet.go +++ b/pkg/kubelet/kubelet.go @@ -961,6 +961,10 @@ func (kl *Kubelet) createPodInfraContainer(pod *api.BoundPod) (dockertools.Docke return "", err } + // Ensure the PID actually exists, else we'll move ourselves. + if containerInfo.State.Pid == 0 { + return "", fmt.Errorf("failed to get init PID for Docker pod infra container %q", string(id)) + } return id, util.ApplyOomScoreAdj(containerInfo.State.Pid, podOomScoreAdj) }