Skip to content

Commit 4594ca0

Browse files
authored
Merge pull request #6743 from XiShanYongYe-Chang/handle-DeletedFinalStateUnknown
Handle the DeletedFinalStateUnknown object in deletion events
2 parents 050477b + 9fd3de6 commit 4594ca0

File tree

5 files changed

+35
-0
lines changed

5 files changed

+35
-0
lines changed

pkg/clusterdiscovery/clusterapi/clusterapi.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,13 @@ func (d *ClusterDetector) OnUpdate(_, newObj interface{}) {
112112

113113
// OnDelete handles object delete event and push the object to queue.
114114
func (d *ClusterDetector) OnDelete(obj interface{}) {
115+
if tombstone, ok := obj.(cache.DeletedFinalStateUnknown); ok {
116+
obj = tombstone.Obj
117+
if obj == nil {
118+
klog.Warningf("Failed to get object(%s) from tombstone", tombstone.Key)
119+
return
120+
}
121+
}
115122
d.OnAdd(obj)
116123
}
117124

pkg/dependenciesdistributor/dependencies_distributor.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,13 @@ func (d *DependenciesDistributor) OnUpdate(oldObj, newObj interface{}) {
160160

161161
// OnDelete handles object delete event and push the object to queue.
162162
func (d *DependenciesDistributor) OnDelete(obj interface{}) {
163+
if tombstone, ok := obj.(cache.DeletedFinalStateUnknown); ok {
164+
obj = tombstone.Obj
165+
if obj == nil {
166+
klog.Warningf("Failed to get object(%s) from tombstone", tombstone.Key)
167+
return
168+
}
169+
}
163170
d.OnAdd(obj)
164171
}
165172

pkg/detector/detector.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -368,6 +368,13 @@ func (d *ResourceDetector) OnUpdate(oldObj, newObj interface{}) {
368368

369369
// OnDelete handles object delete event and push the object to queue.
370370
func (d *ResourceDetector) OnDelete(obj interface{}) {
371+
if tombstone, ok := obj.(cache.DeletedFinalStateUnknown); ok {
372+
obj = tombstone.Obj
373+
if obj == nil {
374+
klog.Warningf("Failed to get object(%s) from tombstone", tombstone.Key)
375+
return
376+
}
377+
}
371378
d.OnAdd(obj)
372379
}
373380

pkg/search/backendstore/defaultstore.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,13 @@ func NewDefaultBackend(cluster string) *Default {
5151
cluster, us.GroupVersionKind().String(), us.GetNamespace(), us.GetName())
5252
},
5353
DeleteFunc: func(obj interface{}) {
54+
if tombstone, ok := obj.(cache.DeletedFinalStateUnknown); ok {
55+
obj = tombstone.Obj
56+
if obj == nil {
57+
klog.Warningf("Failed to get object(%s) from tombstone", tombstone.Key)
58+
return
59+
}
60+
}
5461
us, ok := obj.(*unstructured.Unstructured)
5562
if !ok {
5663
klog.Errorf("unexpected type %T", obj)

pkg/search/backendstore/opensearch.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,13 @@ func (os *OpenSearch) ResourceEventHandlerFuncs() cache.ResourceEventHandler {
147147
os.upsert(curObj)
148148
},
149149
DeleteFunc: func(obj interface{}) {
150+
if tombstone, ok := obj.(cache.DeletedFinalStateUnknown); ok {
151+
obj = tombstone.Obj
152+
if obj == nil {
153+
klog.Warningf("Failed to get object(%s) from tombstone", tombstone.Key)
154+
return
155+
}
156+
}
150157
os.delete(obj)
151158
},
152159
}

0 commit comments

Comments
 (0)