mirror of https://github.com/containers/podman.git
Merge pull request #26637 from containers/renovate/github.com-opencontainers-cgroups-0.x
Update module github.com/opencontainers/cgroups to v0.0.4
This commit is contained in:
commit
c2e4f33b91
2
go.mod
2
go.mod
|
|
@ -52,7 +52,7 @@ require (
|
|||
github.com/nxadm/tail v1.4.11
|
||||
github.com/onsi/ginkgo/v2 v2.23.4
|
||||
github.com/onsi/gomega v1.37.0
|
||||
github.com/opencontainers/cgroups v0.0.3
|
||||
github.com/opencontainers/cgroups v0.0.4
|
||||
github.com/opencontainers/go-digest v1.0.0
|
||||
github.com/opencontainers/image-spec v1.1.1
|
||||
github.com/opencontainers/runtime-spec v1.2.1
|
||||
|
|
|
|||
4
go.sum
4
go.sum
|
|
@ -323,8 +323,8 @@ github.com/onsi/ginkgo/v2 v2.23.4 h1:ktYTpKJAVZnDT4VjxSbiBenUjmlL/5QkBEocaWXiQus
|
|||
github.com/onsi/ginkgo/v2 v2.23.4/go.mod h1:Bt66ApGPBFzHyR+JO10Zbt0Gsp4uWxu5mIOTusL46e8=
|
||||
github.com/onsi/gomega v1.37.0 h1:CdEG8g0S133B4OswTDC/5XPSzE1OeP29QOioj2PID2Y=
|
||||
github.com/onsi/gomega v1.37.0/go.mod h1:8D9+Txp43QWKhM24yyOBEdpkzN8FvJyAwecBgsU4KU0=
|
||||
github.com/opencontainers/cgroups v0.0.3 h1:Jc9dWh/0YLGjdy6J/9Ln8NM5BfTA4W2BY0GMozy3aDU=
|
||||
github.com/opencontainers/cgroups v0.0.3/go.mod h1:s8lktyhlGUqM7OSRL5P7eAW6Wb+kWPNvt4qvVfzA5vs=
|
||||
github.com/opencontainers/cgroups v0.0.4 h1:XVj8P/IHVms/j+7eh8ggdkTLAxjz84ZzuFyGoE28DR4=
|
||||
github.com/opencontainers/cgroups v0.0.4/go.mod h1:s8lktyhlGUqM7OSRL5P7eAW6Wb+kWPNvt4qvVfzA5vs=
|
||||
github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
|
||||
github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
|
||||
github.com/opencontainers/image-spec v1.1.1 h1:y0fUlFfIZhPF1W537XOLg0/fcx6zcHCJwooC2xJA040=
|
||||
|
|
|
|||
|
|
@ -53,12 +53,9 @@ func setFreezer(dirPath string, state cgroups.FreezerState) error {
|
|||
func getFreezer(dirPath string) (cgroups.FreezerState, error) {
|
||||
fd, err := cgroups.OpenFile(dirPath, "cgroup.freeze", unix.O_RDONLY)
|
||||
if err != nil {
|
||||
// If the kernel is too old, then we just treat the freezer as being in
|
||||
// an "undefined" state.
|
||||
if os.IsNotExist(err) || errors.Is(err, unix.ENODEV) {
|
||||
err = nil
|
||||
}
|
||||
return cgroups.Undefined, err
|
||||
// If the kernel is too old, then we just treat the freezer as
|
||||
// being in an "undefined" state and ignore the error.
|
||||
return cgroups.Undefined, ignoreNotExistOrNoDeviceError(err)
|
||||
}
|
||||
defer fd.Close()
|
||||
|
||||
|
|
@ -67,11 +64,15 @@ func getFreezer(dirPath string) (cgroups.FreezerState, error) {
|
|||
|
||||
func readFreezer(dirPath string, fd *os.File) (cgroups.FreezerState, error) {
|
||||
if _, err := fd.Seek(0, 0); err != nil {
|
||||
return cgroups.Undefined, err
|
||||
// If the cgroup path is deleted at this point, then we just treat the freezer as
|
||||
// being in an "undefined" state and ignore the error.
|
||||
return cgroups.Undefined, ignoreNotExistOrNoDeviceError(err)
|
||||
}
|
||||
state := make([]byte, 2)
|
||||
if _, err := fd.Read(state); err != nil {
|
||||
return cgroups.Undefined, err
|
||||
// If the cgroup path is deleted at this point, then we just treat the freezer as
|
||||
// being in an "undefined" state and ignore the error.
|
||||
return cgroups.Undefined, ignoreNotExistOrNoDeviceError(err)
|
||||
}
|
||||
switch string(state) {
|
||||
case "0\n":
|
||||
|
|
@ -83,6 +84,21 @@ func readFreezer(dirPath string, fd *os.File) (cgroups.FreezerState, error) {
|
|||
}
|
||||
}
|
||||
|
||||
// ignoreNotExistOrNoDeviceError checks if the error is either a "not exist" error
|
||||
// or a "no device" error, and returns nil in those cases. Otherwise, it returns the error.
|
||||
func ignoreNotExistOrNoDeviceError(err error) error {
|
||||
// We can safely ignore the error in the following two common situations:
|
||||
// 1. The cgroup path does not exist at the time of opening(eg: the kernel is too old)
|
||||
// — indicated by os.IsNotExist.
|
||||
// 2. The cgroup path is deleted during the seek/read operation — indicated by
|
||||
// errors.Is(err, unix.ENODEV).
|
||||
// These conditions are expected and do not require special handling.
|
||||
if os.IsNotExist(err) || errors.Is(err, unix.ENODEV) {
|
||||
return nil
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
// waitFrozen polls cgroup.events until it sees "frozen 1" in it.
|
||||
func waitFrozen(dirPath string) (cgroups.FreezerState, error) {
|
||||
fd, err := cgroups.OpenFile(dirPath, "cgroup.events", unix.O_RDONLY)
|
||||
|
|
|
|||
|
|
@ -43,10 +43,11 @@ func setHugeTlb(dirPath string, r *cgroups.Resources) error {
|
|||
func statHugeTlb(dirPath string, stats *cgroups.Stats) error {
|
||||
hugetlbStats := cgroups.HugetlbStats{}
|
||||
rsvd := ".rsvd"
|
||||
|
||||
for _, pagesize := range cgroups.HugePageSizes() {
|
||||
prefix := "hugetlb." + pagesize
|
||||
again:
|
||||
prefix := "hugetlb." + pagesize + rsvd
|
||||
value, err := fscommon.GetCgroupParamUint(dirPath, prefix+".current")
|
||||
value, err := fscommon.GetCgroupParamUint(dirPath, prefix+rsvd+".current")
|
||||
if err != nil {
|
||||
if rsvd != "" && errors.Is(err, os.ErrNotExist) {
|
||||
rsvd = ""
|
||||
|
|
|
|||
|
|
@ -742,7 +742,7 @@ github.com/onsi/gomega/matchers/support/goraph/edge
|
|||
github.com/onsi/gomega/matchers/support/goraph/node
|
||||
github.com/onsi/gomega/matchers/support/goraph/util
|
||||
github.com/onsi/gomega/types
|
||||
# github.com/opencontainers/cgroups v0.0.3
|
||||
# github.com/opencontainers/cgroups v0.0.4
|
||||
## explicit; go 1.23.0
|
||||
github.com/opencontainers/cgroups
|
||||
github.com/opencontainers/cgroups/devices/config
|
||||
|
|
|
|||
Loading…
Reference in New Issue