rootless: fix getCurrentOOMScoreAdj
`getCurrentOOMScoreAdj()` was broken because `strconv.Atoi()` was called without trimming "\n". Fix issue 40068: `rootless docker in kubernetes: "getting the final child's pid from pipe caused \"EOF\": unknown" Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
This commit is contained in:
parent
7b9275c0da
commit
d6ddfb6118
1 changed files with 6 additions and 1 deletions
|
@ -3,8 +3,10 @@ package specconv // import "github.com/docker/docker/rootless/specconv"
|
|||
import (
|
||||
"io/ioutil"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
specs "github.com/opencontainers/runtime-spec/specs-go"
|
||||
"github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
// ToRootless converts spec to be compatible with "rootless" runc.
|
||||
|
@ -19,10 +21,13 @@ func ToRootless(spec *specs.Spec, v2Controllers []string) error {
|
|||
func getCurrentOOMScoreAdj() int {
|
||||
b, err := ioutil.ReadFile("/proc/self/oom_score_adj")
|
||||
if err != nil {
|
||||
logrus.WithError(err).Warn("failed to read /proc/self/oom_score_adj")
|
||||
return 0
|
||||
}
|
||||
i, err := strconv.Atoi(string(b))
|
||||
s := string(b)
|
||||
i, err := strconv.Atoi(strings.TrimSpace(s))
|
||||
if err != nil {
|
||||
logrus.WithError(err).Warnf("failed to parse /proc/self/oom_score_adj (%q)", s)
|
||||
return 0
|
||||
}
|
||||
return i
|
||||
|
|
Loading…
Reference in a new issue