Browse Source

cgroupv2: bypass RequireDevices check

Miao Wang 4 năm trước cách đây
mục cha
commit
1bc0285905
3 tập tin đã thay đổi với 9 bổ sung3 xóa
  1. 1 1
      .github/workflows/tunasync.yml
  2. 4 1
      worker/cgroup.go
  3. 4 1
      worker/cgroup_test.go

+ 1 - 1
.github/workflows/tunasync.yml

@@ -63,7 +63,7 @@ jobs:
     - name: Run Additional Unit tests.
       run: |
         make build-test-worker
-        sudo cgexec -g "*:/" -g cpu,memory:tunasync bash -c "echo 0 > /sys/fs/cgroup/systemd/tasks; exec sudo -u $USER env USECURCGROUP=1 ./worker.test -test.v -test.coverprofile profile.cov -test.run TestCgroup"
+        sudo cgexec -g "*:/" bash -c "echo 0 > /sys/fs/cgroup/systemd/tasks; exec sudo -u $USER env USECURCGROUP=1 cgexec -g cpu,memory:tunasync ./worker.test -test.v -test.coverprofile profile.cov -test.run TestCgroup"
 
     - name: Convert coverage to lcov
       uses: jandelgado/gcov2lcov-action@v1.0.0

+ 4 - 1
worker/cgroup.go

@@ -167,7 +167,10 @@ func initCgroup(cfg *cgroupConfig) (error) {
 		}
 		logger.Infof("Loading cgroup")
 		var err error
-		if cfg.cgMgrV1, err = cgv1.Load(cgv1.V1, pather); err != nil {
+		if cfg.cgMgrV1, err = cgv1.Load(cgv1.V1, pather, func(cfg *cgv1.InitConfig) error{
+			cfg.InitCheck = cgv1.AllowAny
+			return nil
+		}); err != nil {
 			return err
 		}
 		logger.Debugf("Available subsystems:")

+ 4 - 1
worker/cgroup_test.go

@@ -231,7 +231,10 @@ sleep 30
 						return path, err
 					}
 				})(cgv1.NestedPath(""))
-				wkrMgr, err := cgv1.Load(cgv1.V1, pather)
+				wkrMgr, err := cgv1.Load(cgv1.V1, pather, func(cfg *cgv1.InitConfig) error{
+					cfg.InitCheck = cgv1.AllowAny
+					return nil
+				})
 				So(err, ShouldBeNil)
 				origMgr := cgcf.cgMgrV1
 				for _, subsys := range(wkrMgr.Subsystems()){