Skip to content

Commit 59fb1f1

Browse files
committed
Fix: cgroup2: Check cgroup existence on Load
Signed-off-by: Berbe <[email protected]>
1 parent 8c81c66 commit 59fb1f1

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

cgroup2/manager.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,10 @@ func Load(group string, opts ...InitOpts) (*Manager, error) {
224224
return nil, err
225225
}
226226
path := filepath.Join(c.mountpoint, group)
227+
_, err := os.Stat(path)
228+
if err != nil {
229+
return nil, err
230+
}
227231
return &Manager{
228232
unifiedMountpoint: c.mountpoint,
229233
path: path,

cgroup2/manager_test.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ package cgroup2
1919
import (
2020
"context"
2121
"fmt"
22+
"io/fs"
2223
"os"
2324
"os/exec"
2425
"syscall"
@@ -466,3 +467,22 @@ func BenchmarkStat(b *testing.B) {
466467
func toPtr[T any](v T) *T {
467468
return &v
468469
}
470+
471+
func TestLoadOKWhenExistent(t *testing.T) {
472+
checkCgroupMode(t)
473+
group := "/existent"
474+
475+
_, err := NewManager(defaultCgroup2Path, group, &Resources{})
476+
require.NoError(t, err)
477+
478+
_, err = Load(group)
479+
require.NoError(t, err)
480+
}
481+
482+
func TestLoadErrorsWhenNonExistent(t *testing.T) {
483+
checkCgroupMode(t)
484+
group := "/nonexistent"
485+
486+
_, err := Load(group)
487+
require.ErrorIs(t, err, fs.ErrNotExist)
488+
}

0 commit comments

Comments
 (0)