Skip to content

Commit

Permalink
Merge pull request #9110 from rhatdan/cgroups
Browse files Browse the repository at this point in the history
Don't fail if one of the cgroups is not setup
  • Loading branch information
openshift-merge-robot authored Jan 28, 2021
2 parents 2ee034c + 89bb8a9 commit 0c6a889
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 1 deletion.
12 changes: 11 additions & 1 deletion pkg/cgroups/cgroups.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ var (
ErrCgroupDeleted = errors.New("cgroup deleted")
// ErrCgroupV1Rootless means the cgroup v1 were attempted to be used in rootless environment
ErrCgroupV1Rootless = errors.New("no support for CGroups V1 in rootless environments")
ErrStatCgroup = errors.New("no cgroup available for gathering user statistics")
)

// CgroupControl controls a cgroup hierarchy
Expand Down Expand Up @@ -525,10 +526,19 @@ func (c *CgroupControl) AddPid(pid int) error {
// Stat returns usage statistics for the cgroup
func (c *CgroupControl) Stat() (*Metrics, error) {
m := Metrics{}
found := false
for _, h := range handlers {
if err := h.Stat(c, &m); err != nil {
return nil, err
if !os.IsNotExist(errors.Cause(err)) {
return nil, err
}
logrus.Warningf("Failed to retrieve cgroup stats: %v", err)
continue
}
found = true
}
if !found {
return nil, ErrStatCgroup
}
return &m, nil
}
Expand Down
32 changes: 32 additions & 0 deletions pkg/cgroups/cgroups_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package cgroups

import (
"testing"

"github.com/containers/podman/v2/pkg/rootless"
spec "github.com/opencontainers/runtime-spec/specs-go"
)

func TestCreated(t *testing.T) {
// tests only works in rootless mode
if rootless.IsRootless() {
return
}

var resources spec.LinuxResources
cgr, err := New("machine.slice", &resources)
if err != nil {
t.Error(err)
}
if err := cgr.Delete(); err != nil {
t.Error(err)
}

cgr, err = NewSystemd("machine.slice")
if err != nil {
t.Error(err)
}
if err := cgr.Delete(); err != nil {
t.Error(err)
}
}

0 comments on commit 0c6a889

Please sign in to comment.