From f794b49ec636243c7dce0798c554adfa72a33a1b Mon Sep 17 00:00:00 2001 From: Mahmood Ali Date: Wed, 11 Dec 2019 11:39:16 -0500 Subject: [PATCH] simplify cgroup path lookup --- drivers/shared/executor/executor_linux.go | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/drivers/shared/executor/executor_linux.go b/drivers/shared/executor/executor_linux.go index 7cf06c057693..7a9c55b8ae7a 100644 --- a/drivers/shared/executor/executor_linux.go +++ b/drivers/shared/executor/executor_linux.go @@ -26,7 +26,6 @@ import ( "github.com/hashicorp/nomad/plugins/drivers" "github.com/opencontainers/runc/libcontainer" "github.com/opencontainers/runc/libcontainer/cgroups" - cgroupFs "github.com/opencontainers/runc/libcontainer/cgroups/fs" lconfigs "github.com/opencontainers/runc/libcontainer/configs" ldevices "github.com/opencontainers/runc/libcontainer/devices" lutils "github.com/opencontainers/runc/libcontainer/utils" @@ -35,7 +34,7 @@ import ( ) const ( - defaultCgroupParent = "nomad" + defaultCgroupParent = "/nomad" ) var ( @@ -692,30 +691,21 @@ func configureBasicCgroups(cfg *lconfigs.Config) error { id := uuid.Generate() // Manually create freezer cgroup - cfg.Cgroups.Paths = map[string]string{} - root, err := cgroups.FindCgroupMountpointDir() - if err != nil { - return err - } - if _, err := os.Stat(root); err != nil { - return err - } + subsystem := "freezer" - freezer := cgroupFs.FreezerGroup{} - subsystem := freezer.Name() - path, err := cgroups.FindCgroupMountpoint("", subsystem) + path, err := getCgroupPathHelper(subsystem, filepath.Join(defaultCgroupParent, id)) if err != nil { return fmt.Errorf("failed to find %s cgroup mountpoint: %v", subsystem, err) } - // Sometimes subsystems can be mounted together as 'cpu,cpuacct'. - path = filepath.Join(root, filepath.Base(path), defaultCgroupParent, id) if err = os.MkdirAll(path, 0755); err != nil { return err } - cfg.Cgroups.Paths[subsystem] = path + cfg.Cgroups.Paths = map[string]string{ + subsystem: path, + } return nil }