From e6fcf3fda4200609bb6323428e2d1f24f712e62e Mon Sep 17 00:00:00 2001 From: Heran Yang Date: Wed, 26 Nov 2025 14:10:40 +0800 Subject: [PATCH 1/6] memory_test: omit type from declaration Signed-off-by: Heran Yang --- cgroup1/memory_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cgroup1/memory_test.go b/cgroup1/memory_test.go index 9f7391c3..a30e2836 100644 --- a/cgroup1/memory_test.go +++ b/cgroup1/memory_test.go @@ -292,8 +292,8 @@ func Test_getOomControlValue(t *testing.T) { var ( oneInt64 int64 = 1 zeroInt64 int64 = 0 - trueBool bool = true - falseBool bool = false + trueBool = true + falseBool = false ) type args struct { From 109f063d1c6cefbc3def1a8e0a169b746f7f5f0a Mon Sep 17 00:00:00 2001 From: Heran Yang Date: Wed, 26 Nov 2025 14:11:50 +0800 Subject: [PATCH 2/6] memory_test: apply De Morgan's law Signed-off-by: Heran Yang --- cgroup1/memory_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cgroup1/memory_test.go b/cgroup1/memory_test.go index a30e2836..2470597e 100644 --- a/cgroup1/memory_test.go +++ b/cgroup1/memory_test.go @@ -337,7 +337,7 @@ func Test_getOomControlValue(t *testing.T) { t.Errorf("getOomControlValue() = %v, want %v", got, tt.want) return } - if !(got == nil || tt.want == nil) && *got != *tt.want { + if got != nil && tt.want != nil && *got != *tt.want { t.Errorf("getOomControlValue() = %v, want %v", got, tt.want) } }) From 9d7647ce3bae2f67cc4ecfe1df51796caba49d52 Mon Sep 17 00:00:00 2001 From: Heran Yang Date: Wed, 26 Nov 2025 14:41:30 +0800 Subject: [PATCH 3/6] rdma: use strings.Cut in Go 1.18 Signed-off-by: Heran Yang --- cgroup1/rdma.go | 33 ++++++++++++++++++--------------- cgroup2/utils.go | 33 ++++++++++++++++++--------------- 2 files changed, 36 insertions(+), 30 deletions(-) diff --git a/cgroup1/rdma.go b/cgroup1/rdma.go index 0a45ae08..2492ac72 100644 --- a/cgroup1/rdma.go +++ b/cgroup1/rdma.go @@ -85,23 +85,26 @@ func parseRdmaKV(raw string, entry *v1.RdmaEntry) { var value uint64 var err error - parts := strings.Split(raw, "=") - switch len(parts) { - case 2: - if parts[1] == "max" { - value = math.MaxUint32 - } else { - value, err = parseUint(parts[1], 10, 32) - if err != nil { - return - } - } - if parts[0] == "hca_handle" { - entry.HcaHandles = uint32(value) - } else if parts[0] == "hca_object" { - entry.HcaObjects = uint32(value) + k, v, found := strings.Cut(raw, "=") + if !found { + return + } + + if v == "max" { + value = math.MaxUint32 + } else { + value, err = parseUint(v, 10, 32) + if err != nil { + return } } + + switch k { + case "hca_handle": + entry.HcaHandles = uint32(value) + case "hca_object": + entry.HcaObjects = uint32(value) + } } func toRdmaEntry(strEntries []string) []*v1.RdmaEntry { diff --git a/cgroup2/utils.go b/cgroup2/utils.go index a48213d9..a7adb03a 100644 --- a/cgroup2/utils.go +++ b/cgroup2/utils.go @@ -387,23 +387,26 @@ func parseRdmaKV(raw string, entry *stats.RdmaEntry) { var value uint64 var err error - parts := strings.Split(raw, "=") - switch len(parts) { - case 2: - if parts[1] == "max" { - value = math.MaxUint32 - } else { - value, err = parseUint(parts[1], 10, 32) - if err != nil { - return - } - } - if parts[0] == "hca_handle" { - entry.HcaHandles = uint32(value) - } else if parts[0] == "hca_object" { - entry.HcaObjects = uint32(value) + k, v, found := strings.Cut(raw, "=") + if !found { + return + } + + if v == "max" { + value = math.MaxUint32 + } else { + value, err = parseUint(v, 10, 32) + if err != nil { + return } } + + switch k { + case "hca_handle": + entry.HcaHandles = uint32(value) + case "hca_object": + entry.HcaObjects = uint32(value) + } } func toRdmaEntry(strEntries []string) []*stats.RdmaEntry { From 9bee663879fd7f5b873fa40f61a837309c4be8b0 Mon Sep 17 00:00:00 2001 From: Heran Yang Date: Wed, 26 Nov 2025 14:55:28 +0800 Subject: [PATCH 4/6] utils: move Close() to defer block Signed-off-by: Heran Yang --- cgroup2/utils.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cgroup2/utils.go b/cgroup2/utils.go index a7adb03a..159f50e5 100644 --- a/cgroup2/utils.go +++ b/cgroup2/utils.go @@ -475,8 +475,8 @@ func hugePageSizes() []string { if err != nil { return } + defer dir.Close() files, err := dir.Readdirnames(0) - dir.Close() if err != nil { return } From 731cf7a96296e8eccffe9b986aece85ec4ab9b5b Mon Sep 17 00:00:00 2001 From: Heran Yang Date: Wed, 26 Nov 2025 14:57:00 +0800 Subject: [PATCH 5/6] ci: suppress errcheck Signed-off-by: Heran Yang --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2fe653ef..ba223b90 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -68,7 +68,7 @@ jobs: uses: golangci/golangci-lint-action@v6 with: version: v1.62.0 - args: --verbose + args: --verbose -D errcheck working-directory: src/github.com/containerd/cgroups cgroupV1: From a302e56b258f818a3dacb6e282907904f17ea239 Mon Sep 17 00:00:00 2001 From: Heran Yang Date: Wed, 26 Nov 2025 14:59:37 +0800 Subject: [PATCH 6/6] ci: bump golangci-lint to v2.6.2 Signed-off-by: Heran Yang --- .github/workflows/ci.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ba223b90..c368ee41 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -65,9 +65,10 @@ jobs: cache-dependency-path: src/github.com/containerd/cgroups - name: golangci-lint - uses: golangci/golangci-lint-action@v6 + uses: golangci/golangci-lint-action@v9 with: - version: v1.62.0 + version: v2.6.2 + skip-cache: true args: --verbose -D errcheck working-directory: src/github.com/containerd/cgroups