diff options
author | karthik nayak <knayak@gitlab.com> | 2023-07-28 11:47:57 +0300 |
---|---|---|
committer | karthik nayak <knayak@gitlab.com> | 2023-07-28 11:47:57 +0300 |
commit | e4f5bd5e339db88c07adeef1e57320ef5e1afb4e (patch) | |
tree | 38378fa315dba7a3491129ad71f93d6efc1acb53 /internal/cgroups | |
parent | 09252c685f026c26451b66efc95fce7dab3d1da9 (diff) | |
parent | 97b5d2a2c8c8e667275a38ce10d6b51f3a7b2938 (diff) |
Merge branch 'adlternative/zh-no-cgroup-linux-fix' into 'master'
cgroup: using a noop manager on linux without cgroup
Closes #4511
See merge request https://gitlab.com/gitlab-org/gitaly/-/merge_requests/6150
Merged-by: karthik nayak <knayak@gitlab.com>
Approved-by: Quang-Minh Nguyen <qmnguyen@gitlab.com>
Approved-by: karthik nayak <knayak@gitlab.com>
Reviewed-by: Quang-Minh Nguyen <qmnguyen@gitlab.com>
Reviewed-by: karthik nayak <knayak@gitlab.com>
Co-authored-by: ZheNing Hu <adlternative@gmail.com>
Diffstat (limited to 'internal/cgroups')
-rw-r--r-- | internal/cgroups/cgroups.go | 4 | ||||
-rw-r--r-- | internal/cgroups/manager_linux.go | 4 | ||||
-rw-r--r-- | internal/cgroups/v1_linux_test.go | 2 |
3 files changed, 7 insertions, 3 deletions
diff --git a/internal/cgroups/cgroups.go b/internal/cgroups/cgroups.go index 0c6927502..e4f7e840b 100644 --- a/internal/cgroups/cgroups.go +++ b/internal/cgroups/cgroups.go @@ -42,7 +42,9 @@ type Manager interface { // NewManager returns the appropriate Cgroups manager func NewManager(cfg cgroups.Config, pid int) Manager { if cfg.Repositories.Count > 0 { - return newCgroupManager(cfg, pid) + if manager := newCgroupManager(cfg, pid); manager != nil { + return manager + } } return &NoopManager{} diff --git a/internal/cgroups/manager_linux.go b/internal/cgroups/manager_linux.go index 7b8c4a34d..f9215d342 100644 --- a/internal/cgroups/manager_linux.go +++ b/internal/cgroups/manager_linux.go @@ -49,7 +49,8 @@ func newCgroupManagerWithMode(cfg cgroupscfg.Config, pid int, mode cgrps.CGMode) handler = newV2Handler(cfg, pid) log.Warnf("Gitaly now includes experimental support for CgroupV2. Please proceed with caution and use this experimental feature at your own risk") default: - log.Fatalf("unknown cgroup version") + log.Warnf("Gitaly has encountered an issue while trying to detect the version of the system's cgroup. As a result, all subsequent commands will be executed without cgroup support. Please check the system's cgroup configuration and try again") + return nil } return &CGroupManager{ @@ -172,6 +173,5 @@ func pruneOldCgroupsWithMode(cfg cgroupscfg.Config, logger log.FieldLogger, mode case cgrps.Unified: pruneOldCgroupsV2(cfg, logger) default: - log.Fatalf("unknown cgroup version") } } diff --git a/internal/cgroups/v1_linux_test.go b/internal/cgroups/v1_linux_test.go index a68ebed4d..7503ff8bf 100644 --- a/internal/cgroups/v1_linux_test.go +++ b/internal/cgroups/v1_linux_test.go @@ -42,6 +42,8 @@ func TestNewManagerV1(t *testing.T) { require.IsType(t, &cgroupV1Handler{}, manager.handler) manager = newCgroupManagerWithMode(cfg, 1, cgrps.Hybrid) require.IsType(t, &cgroupV1Handler{}, manager.handler) + manager = newCgroupManagerWithMode(cfg, 1, cgrps.Unavailable) + require.Nil(t, manager) } func TestSetup_ParentCgroups(t *testing.T) { |