@@ -526,29 +526,21 @@ func (r *crdHandler) removeDeadStorage() {
526
526
r .customStorageLock .Lock ()
527
527
defer r .customStorageLock .Unlock ()
528
528
529
- oldInfos := []* crdInfo {}
530
529
storageMap := r .customStorage .Load ().(crdStorageMap )
531
530
// Copy because we cannot write to storageMap without a race
532
- // as it is used without locking elsewhere
533
- storageMap2 := storageMap .clone ()
534
- for uid , s := range storageMap2 {
535
- found := false
536
- for _ , crd := range allCustomResourceDefinitions {
537
- if crd .UID == uid {
538
- found = true
539
- break
540
- }
541
- }
542
- if ! found {
543
- klog .V (4 ).Infof ("Removing dead CRD storage for %s/%s" , s .spec .Group , s .spec .Names .Kind )
544
- oldInfos = append (oldInfos , s )
545
- delete (storageMap2 , uid )
531
+ storageMap2 := make (crdStorageMap )
532
+ for _ , crd := range allCustomResourceDefinitions {
533
+ if _ , ok := storageMap [crd .UID ]; ok {
534
+ storageMap2 [crd .UID ] = storageMap [crd .UID ]
546
535
}
547
536
}
548
537
r .customStorage .Store (storageMap2 )
549
538
550
- for _ , s := range oldInfos {
551
- go r .tearDown (s )
539
+ for uid , crdInfo := range storageMap {
540
+ if _ , ok := storageMap2 [uid ]; ! ok {
541
+ klog .V (4 ).Infof ("Removing dead CRD storage for %s/%s" , crdInfo .spec .Group , crdInfo .spec .Names .Kind )
542
+ go r .tearDown (crdInfo )
543
+ }
552
544
}
553
545
}
554
546
0 commit comments