From f16976d354d3e8c0f9186dc85c2dfab49836788c Mon Sep 17 00:00:00 2001 From: Qiuyu Wu Date: Tue, 9 Aug 2022 18:51:31 +0800 Subject: [PATCH] fix nil pointer in jobCache.update Signed-off-by: Qiuyu Wu --- pkg/controllers/cache/cache.go | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/pkg/controllers/cache/cache.go b/pkg/controllers/cache/cache.go index 9e6d1fdab5..3c480f5705 100644 --- a/pkg/controllers/cache/cache.go +++ b/pkg/controllers/cache/cache.go @@ -154,17 +154,19 @@ func (jc *jobCache) Update(obj *v1alpha1.Job) error { return fmt.Errorf("failed to find job <%v>", key) } - var oldResourceversion, newResourceversion uint64 - var err error - if oldResourceversion, err = strconv.ParseUint(job.Job.ResourceVersion, 10, 64); err != nil { - return fmt.Errorf("failed to parase job <%v> resource version <%s>", key, job.Job.ResourceVersion) - } + if job.Job != nil { + var oldResourceversion, newResourceversion uint64 + var err error + if oldResourceversion, err = strconv.ParseUint(job.Job.ResourceVersion, 10, 64); err != nil { + return fmt.Errorf("failed to parase job <%v> resource version <%s>", key, job.Job.ResourceVersion) + } - if newResourceversion, err = strconv.ParseUint(obj.ResourceVersion, 10, 64); err != nil { - return fmt.Errorf("failed to parase job <%v> resource version <%s>", key, obj.ResourceVersion) - } - if newResourceversion < oldResourceversion { - return fmt.Errorf("job <%v> has too old resource version: %d (%d)", key, newResourceversion, oldResourceversion) + if newResourceversion, err = strconv.ParseUint(obj.ResourceVersion, 10, 64); err != nil { + return fmt.Errorf("failed to parase job <%v> resource version <%s>", key, obj.ResourceVersion) + } + if newResourceversion < oldResourceversion { + return fmt.Errorf("job <%v> has too old resource version: %d (%d)", key, newResourceversion, oldResourceversion) + } } job.Job = obj return nil