diff --git a/clusterloader2/pkg/measurement/common/service_creation_latency.go b/clusterloader2/pkg/measurement/common/service_creation_latency.go index 868f2cafe8..1f9e737861 100644 --- a/clusterloader2/pkg/measurement/common/service_creation_latency.go +++ b/clusterloader2/pkg/measurement/common/service_creation_latency.go @@ -337,7 +337,7 @@ func (s *serviceCreationLatencyMeasurement) handleIngressObject(oldObj, newObj i return } newIngress, ok = newObj.(*networkingv1.Ingress) - if newIngress != nil && !ok { + if newObj != nil && !ok { klog.Errorf("%s: uncastable new object: %v", s, newObj) return } @@ -369,11 +369,12 @@ func (s *serviceCreationLatencyMeasurement) deleteObject(svc *corev1.Service) er } s.lock.Lock() defer s.lock.Unlock() - if svc.ObjectMeta.DeletionTimestamp == nil { - klog.Warningf("DeletionTimestamp is nil for service: %v", key) - return nil + if svc.ObjectMeta.DeletionTimestamp != nil { + s.creationTimes.Set(key, phaseName(deletingPhase, svc.Spec.Type), svc.ObjectMeta.DeletionTimestamp.Time) + } else { + // Object was deleted without DeletionTimestamp (immediate deletion) + s.creationTimes.Set(key, phaseName(deletingPhase, svc.Spec.Type), time.Now()) } - s.creationTimes.Set(key, phaseName(deletingPhase, svc.Spec.Type), svc.ObjectMeta.DeletionTimestamp.Time) s.creationTimes.Set(key, phaseName(deletedPhase, svc.Spec.Type), time.Now()) s.pingCheckers.DeleteAndStop(key) return nil @@ -386,11 +387,12 @@ func (s *serviceCreationLatencyMeasurement) deleteIngressObject(ingress *network } s.lock.Lock() defer s.lock.Unlock() - if ingress.ObjectMeta.DeletionTimestamp == nil { - klog.Warningf("DeletionTimestamp is nil for service: %v", key) - return nil + if ingress.ObjectMeta.DeletionTimestamp != nil { + s.creationTimes.Set(key, phaseName(deletingPhase, ingressType), ingress.ObjectMeta.DeletionTimestamp.Time) + } else { + // Object was deleted without DeletionTimestamp (immediate deletion) + s.creationTimes.Set(key, phaseName(deletingPhase, ingressType), time.Now()) } - s.creationTimes.Set(key, phaseName(deletingPhase, ingressType), ingress.ObjectMeta.DeletionTimestamp.Time) s.creationTimes.Set(key, phaseName(deletedPhase, ingressType), time.Now()) s.pingCheckers.DeleteAndStop(key) return nil diff --git a/clusterloader2/testing/neg/config.yaml b/clusterloader2/testing/neg/config.yaml index 0998080d86..41fd7c38bc 100644 --- a/clusterloader2/testing/neg/config.yaml +++ b/clusterloader2/testing/neg/config.yaml @@ -119,6 +119,10 @@ steps: Method: WaitForControlledPodsRunning Params: action: gather +- module: + path: /modules/ingress-measurements.yaml + params: + action: waitForDeletion - name: Wait after deletion measurements: - Identifier: Wait