Skip to content

Commit 68438ba

Browse files
lengrongfulengrongfu
authored andcommitted
fix scheduler validate
Signed-off-by: lengrongfu <[email protected]>
1 parent 827c707 commit 68438ba

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

libcontainer/configs/validate/validator.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -383,8 +383,10 @@ func scheduler(config *configs.Config) error {
383383
if s.Policy == "" {
384384
return errors.New("scheduler policy is required")
385385
}
386-
if s.Nice < -20 || s.Nice > 19 {
387-
return fmt.Errorf("invalid scheduler.nice: %d", s.Nice)
386+
if s.Policy == specs.SchedOther || s.Policy == specs.SchedBatch {
387+
if s.Nice < -20 || s.Nice > 19 {
388+
return fmt.Errorf("invalid scheduler.nice: %d when scheduler.policy is %s", s.Nice, string(s.Policy))
389+
}
388390
}
389391
if s.Priority != 0 && (s.Policy != specs.SchedFIFO && s.Policy != specs.SchedRR) {
390392
return errors.New("scheduler.priority can only be specified for SchedFIFO or SchedRR policy")

libcontainer/configs/validate/validator_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -814,6 +814,9 @@ func TestValidateScheduler(t *testing.T) {
814814
{isErr: false, policy: "SCHED_DEADLINE", runtime: 200},
815815
{isErr: false, policy: "SCHED_DEADLINE", deadline: 300},
816816
{isErr: false, policy: "SCHED_DEADLINE", period: 400},
817+
{isErr: true, policy: "SCHED_OTHER", niceValue: 20},
818+
{isErr: true, policy: "SCHED_OTHER", niceValue: -21},
819+
{isErr: false, policy: "SCHED_FIFO", priority: 100, niceValue: 100},
817820
}
818821

819822
for _, tc := range testCases {

0 commit comments

Comments
 (0)