Skip to content

Commit 8b7e9d3

Browse files
author
gmarek
committed
Handle DeletedFinalStateUnknown in NodeController
1 parent 4a223ef commit 8b7e9d3

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

pkg/controller/node/nodecontroller.go

+14-1
Original file line numberDiff line numberDiff line change
@@ -294,7 +294,20 @@ func NewNodeController(
294294
return
295295
}
296296

297-
node := obj.(*api.Node)
297+
node, isNode := obj.(*api.Node)
298+
// We can get DeletedFinalStateUnknown instead of *api.Node here and we need to handle that correctly. #34692
299+
if !isNode {
300+
deletedState, ok := obj.(cache.DeletedFinalStateUnknown)
301+
if !ok {
302+
glog.Errorf("Received unexpected object: %v", obj)
303+
return
304+
}
305+
node, ok = deletedState.Obj.(*api.Node)
306+
if !ok {
307+
glog.Errorf("DeletedFinalStateUnknown contained non-Node object: %v", deletedState.Obj)
308+
return
309+
}
310+
}
298311
if err := nc.cidrAllocator.ReleaseCIDR(node); err != nil {
299312
glog.Errorf("Error releasing CIDR: %v", err)
300313
}

0 commit comments

Comments
 (0)