Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkarthik nayak <knayak@gitlab.com>2023-07-28 11:47:57 +0300
committerkarthik nayak <knayak@gitlab.com>2023-07-28 11:47:57 +0300
commite4f5bd5e339db88c07adeef1e57320ef5e1afb4e (patch)
tree38378fa315dba7a3491129ad71f93d6efc1acb53 /internal/cgroups
parent09252c685f026c26451b66efc95fce7dab3d1da9 (diff)
parent97b5d2a2c8c8e667275a38ce10d6b51f3a7b2938 (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.go4
-rw-r--r--internal/cgroups/manager_linux.go4
-rw-r--r--internal/cgroups/v1_linux_test.go2
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) {