From c4c99764f84a9b88317a94903d39718b2b467817 Mon Sep 17 00:00:00 2001 From: Berbe <4251220+Berbe@users.noreply.github.com> Date: Sat, 29 Nov 2025 15:45:24 +0000 Subject: [PATCH 1/2] Add: cgroup2: Test Load Signed-off-by: Berbe <4251220+Berbe@users.noreply.github.com> --- cgroup2/manager_test.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/cgroup2/manager_test.go b/cgroup2/manager_test.go index 4902e576..bfcce9e4 100644 --- a/cgroup2/manager_test.go +++ b/cgroup2/manager_test.go @@ -466,3 +466,14 @@ func BenchmarkStat(b *testing.B) { func toPtr[T any](v T) *T { return &v } + +func TestLoadOKWhenExistent(t *testing.T) { + checkCgroupMode(t) + group := "/existent" + + _, err := NewManager(defaultCgroup2Path, group, &Resources{}) + require.NoError(t, err) + + _, err = Load(group) + require.NoError(t, err) +} From dbf9ebdbae06822ebff480cc5b1a2756c66076f3 Mon Sep 17 00:00:00 2001 From: Berbe <4251220+Berbe@users.noreply.github.com> Date: Sat, 29 Nov 2025 15:01:21 +0000 Subject: [PATCH 2/2] Fix: cgroup2: Check cgroup existence on Load Signed-off-by: Berbe <4251220+Berbe@users.noreply.github.com> --- cgroup2/manager.go | 4 ++++ cgroup2/manager_test.go | 9 +++++++++ 2 files changed, 13 insertions(+) diff --git a/cgroup2/manager.go b/cgroup2/manager.go index 3536fc97..8cf91349 100644 --- a/cgroup2/manager.go +++ b/cgroup2/manager.go @@ -224,6 +224,10 @@ func Load(group string, opts ...InitOpts) (*Manager, error) { return nil, err } path := filepath.Join(c.mountpoint, group) + _, err := os.Stat(path) + if err != nil { + return nil, err + } return &Manager{ unifiedMountpoint: c.mountpoint, path: path, diff --git a/cgroup2/manager_test.go b/cgroup2/manager_test.go index bfcce9e4..aa9a0615 100644 --- a/cgroup2/manager_test.go +++ b/cgroup2/manager_test.go @@ -19,6 +19,7 @@ package cgroup2 import ( "context" "fmt" + "io/fs" "os" "os/exec" "syscall" @@ -477,3 +478,11 @@ func TestLoadOKWhenExistent(t *testing.T) { _, err = Load(group) require.NoError(t, err) } + +func TestLoadErrorsWhenNonExistent(t *testing.T) { + checkCgroupMode(t) + group := "/nonexistent" + + _, err := Load(group) + require.ErrorIs(t, err, fs.ErrNotExist) +}