From a453209ae509515594b7756d1c95a45cec910002 Mon Sep 17 00:00:00 2001 From: Jeremy-boo Date: Fri, 13 Dec 2024 14:51:59 +0800 Subject: [PATCH] fix: 1.Fix the error "cgroup2 path not found" --- exec/executor_common_linux.go | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/exec/executor_common_linux.go b/exec/executor_common_linux.go index a988215..10b6a6e 100644 --- a/exec/executor_common_linux.go +++ b/exec/executor_common_linux.go @@ -163,19 +163,22 @@ func execForHangAction(uid string, ctx context.Context, expModel *spec.ExpModel, if isCgroupV2 { g, err := cgroupsv2.PidGroupPath(int(pid)) if err != nil { - sprintf := fmt.Sprintf("loading cgroup2 for %d, err ", pid, err.Error()) + sprintf := fmt.Sprintf("loading cgroup2 for %d, err %s", pid, err.Error()) return spec.ReturnFail(spec.OsCmdExecFailed, sprintf) } - cg, err := cgroupsv2.LoadManager("/sys/fs/cgroup/", g) + + cgPath := path.Join(cgroupRoot, g) + cg, err := cgroupsv2.LoadManager(cgroupRoot, cgPath) if err != nil { if err != cgroupsv2.ErrCgroupDeleted { + if cg, err = cgroupsv2.NewManager(cgroupRoot, cgPath, nil); err != nil { + sprintf := fmt.Sprintf("cgroups V2 new manager failed, %s", err.Error()) + return spec.ReturnFail(spec.OsCmdExecFailed, sprintf) + } + } else { sprintf := fmt.Sprintf("cgroups V2 load failed, %s", err.Error()) return spec.ReturnFail(spec.OsCmdExecFailed, sprintf) } - if cg, err = cgroupsv2.NewManager("/sys/fs/cgroup", cgroupRoot, nil); err != nil { - sprintf := fmt.Sprintf("cgroups V2 new manager failed, %s", err.Error()) - return spec.ReturnFail(spec.OsCmdExecFailed, sprintf) - } } if err := command.Start(); err != nil { sprintf := fmt.Sprintf("command start failed, %s", err.Error())