diff --git a/pkg/util/runtime/cpu_linux.go b/pkg/util/runtime/cpu_linux.go index c97184bcf..9cb260c4b 100644 --- a/pkg/util/runtime/cpu_linux.go +++ b/pkg/util/runtime/cpu_linux.go @@ -64,14 +64,13 @@ func GetCgroupVersion() int64 { // /sys/fs/cgroup/cgroup.controllers will not exist with cgroupsv1 if _, err := os.Stat("/sys/fs/cgroup/cgroup.controllers"); err == nil { return 2 - } else { - return 1 } + + return 1 } -func readCgroup2FileToInt64Tuple(cgroupFile string) (int64, int64) { - contents, err := os.ReadFile(filepath.Join("/sys/fs/cgroup/", cgroupFile)) - +func readCgroup2FileToInt64Tuple(cgroupFile string) (quota, period int64) { + contents, err := os.ReadFile(filepath.Join(string(os.PathSeparator), "sys", "fs", "cgroup", cgroupFile)) if err != nil { return -1, -1 } @@ -87,7 +86,6 @@ func readCgroup2FileToInt64Tuple(cgroupFile string) (int64, int64) { } cpuQuota, err := strconv.ParseInt(values[0], 10, 64) - if err != nil { return -1, -1 } @@ -97,7 +95,6 @@ func readCgroup2FileToInt64Tuple(cgroupFile string) (int64, int64) { } cpuPeriod, err := strconv.ParseInt(values[1], 10, 64) - if err != nil { return -1, -1 } diff --git a/test/e2e/cgroups/cgroups.go b/test/e2e/cgroups/cgroups.go index 6ad8558df..e01f683e4 100644 --- a/test/e2e/cgroups/cgroups.go +++ b/test/e2e/cgroups/cgroups.go @@ -19,6 +19,7 @@ package cgroups import ( "log" "os" + "path/filepath" "github.com/onsi/ginkgo/v2" "github.com/stretchr/testify/assert" @@ -26,7 +27,6 @@ import ( "k8s.io/ingress-nginx/test/e2e/framework" "k8s.io/ingress-nginx/pkg/util/runtime" - "path/filepath" libcontainercgroups "github.com/opencontainers/runc/libcontainer/cgroups" ) @@ -46,22 +46,34 @@ var _ = framework.IngressNginxDescribeSerial("[CGroups] cgroups", func() { } quotaFile, err := os.Create(filepath.Join(cgroupPath, "cpu.cfs_quota_us")) - if err != nil { log.Fatal(err) } periodFile, err := os.Create(filepath.Join(cgroupPath, "cpu.cfs_period_us")) - if err != nil { log.Fatal(err) } - quotaFile.WriteString("4") - quotaFile.Sync() + _, err = quotaFile.WriteString("4") + if err != nil { + log.Fatal(err) + } - periodFile.WriteString("2") - periodFile.Sync() + err = quotaFile.Sync() + if err != nil { + log.Fatal(err) + } + + _, err = periodFile.WriteString("2") + if err != nil { + log.Fatal(err) + } + + err = periodFile.Sync() + if err != nil { + log.Fatal(err) + } assert.Equal(ginkgo.GinkgoT(), runtime.GetCgroupVersion(), int64(1)) assert.Equal(ginkgo.GinkgoT(), runtime.NumCPU(), 2) @@ -75,15 +87,25 @@ var _ = framework.IngressNginxDescribeSerial("[CGroups] cgroups", func() { log.Fatal(err) } - os.Create("/sys/fs/cgroup/cgroup.controllers") - file, err := os.Create("/sys/fs/cgroup/cpu.max") - + _, err := os.Create("/sys/fs/cgroup/cgroup.controllers") if err != nil { log.Fatal(err) } - file.WriteString("4 2") - file.Sync() + file, err := os.Create("/sys/fs/cgroup/cpu.max") + if err != nil { + log.Fatal(err) + } + + _, err = file.WriteString("4 2") + if err != nil { + log.Fatal(err) + } + + err = file.Sync() + if err != nil { + log.Fatal(err) + } assert.Equal(ginkgo.GinkgoT(), runtime.GetCgroupVersion(), int64(2)) assert.Equal(ginkgo.GinkgoT(), runtime.NumCPU(), 2)