java-topology/defects/kubernetes/patch/kubernetes-0003-job-tracking-finalizer-redundant-scan.patch

14 lines
745 B
Diff

# UNDF: UNDF-2026-000000138
--- a/pkg/controller/job/job_controller.go
+++ b/pkg/controller/job/job_controller.go
@@ -1354,7 +1354,9 @@ func (jm *Controller) trackJobStatusAndRemoveFinalizers(ctx context.Context, job
reachedMaxUncountedPods := false
for _, pod := range jobCtx.pods {
- if !hasJobTrackingFinalizer(pod) || jobCtx.expectedRmFinalizers.Has(pod.UID) {
- // This pod was processed in a previous sync.
+ // Use the already-built uidsWithFinalizer set (O(1)) instead of
+ // calling hasJobTrackingFinalizer again (O(F) slices.Contains per pod).
+ if !uidsWithFinalizer.Has(pod.UID) || jobCtx.expectedRmFinalizers.Has(pod.UID) {
+ // This pod was processed in a previous sync or has no tracking finalizer.
continue
}