Merge pull request #34694 from gmarek/deleted_final_state_unknown

Automatic merge from submit-queue

Handle DeletedFinalStateUnknown in NodeController

Fix #34692

```release-note
Fix panic in NodeController caused by receiving DeletedFinalStateUnknown object from the cache.
```

cc @davidopp
This commit is contained in:
Kubernetes Submit Queue 2016-10-13 04:58:06 -07:00 committed by GitHub
commit 1c65d1df86

View File

@ -294,7 +294,20 @@ func NewNodeController(
return
}
node := obj.(*api.Node)
node, isNode := obj.(*api.Node)
// We can get DeletedFinalStateUnknown instead of *api.Node here and we need to handle that correctly. #34692
if !isNode {
deletedState, ok := obj.(cache.DeletedFinalStateUnknown)
if !ok {
glog.Errorf("Received unexpected object: %v", obj)
return
}
node, ok = deletedState.Obj.(*api.Node)
if !ok {
glog.Errorf("DeletedFinalStateUnknown contained non-Node object: %v", deletedState.Obj)
return
}
}
if err := nc.cidrAllocator.ReleaseCIDR(node); err != nil {
glog.Errorf("Error releasing CIDR: %v", err)
}