From 53c3e103d117c7b4dafe0308b9a4776147de0e2a Mon Sep 17 00:00:00 2001 From: goodluckbot Date: Sat, 25 Aug 2018 18:07:25 +0800 Subject: [PATCH] Fix pastBackoffLimitOnFailure when backoffLimit is zero --- pkg/controller/job/job_controller.go | 3 +++ pkg/controller/job/job_controller_test.go | 15 +++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/pkg/controller/job/job_controller.go b/pkg/controller/job/job_controller.go index d544e23c236..5b10f9294f0 100644 --- a/pkg/controller/job/job_controller.go +++ b/pkg/controller/job/job_controller.go @@ -643,6 +643,9 @@ func pastBackoffLimitOnFailure(job *batch.Job, pods []*v1.Pod) bool { result += stat.RestartCount } } + if *job.Spec.BackoffLimit == 0 { + return result > 0 + } return result >= *job.Spec.BackoffLimit } diff --git a/pkg/controller/job/job_controller_test.go b/pkg/controller/job/job_controller_test.go index c74a35383a8..8be2deed3e9 100644 --- a/pkg/controller/job/job_controller_test.go +++ b/pkg/controller/job/job_controller_test.go @@ -1422,6 +1422,21 @@ func TestJobBackoffForOnFailure(t *testing.T) { expectedCondition *batch.JobConditionType expectedConditionReason string }{ + "backoffLimit 0 should have 1 pod active": { + 1, 1, 0, + true, []int32{0}, + 1, 0, 0, nil, "", + }, + "backoffLimit 1 with restartCount 0 should have 1 pod active": { + 1, 1, 1, + true, []int32{0}, + 1, 0, 0, nil, "", + }, + "backoffLimit 1 with restartCount 1 should have 0 pod active": { + 1, 1, 1, + true, []int32{1}, + 0, 0, 1, &jobConditionFailed, "BackoffLimitExceeded", + }, "too many job failures - single pod": { 1, 5, 2, true, []int32{2},