Commit b841b15e authored by Yecheng Fu's avatar Yecheng Fu

Invalidate CheckVolumeBinding predicate cache on PV update.

parent bababe08
...@@ -404,6 +404,11 @@ func (c *configFactory) onPvUpdate(old, new interface{}) { ...@@ -404,6 +404,11 @@ func (c *configFactory) onPvUpdate(old, new interface{}) {
func (c *configFactory) invalidatePredicatesForPvUpdate(oldPV, newPV *v1.PersistentVolume) { func (c *configFactory) invalidatePredicatesForPvUpdate(oldPV, newPV *v1.PersistentVolume) {
invalidPredicates := sets.NewString() invalidPredicates := sets.NewString()
// CheckVolumeBinding predicate calls SchedulerVolumeBinder.FindPodVolumes
// which will cache PVs in PodBindingCache. When PV got updated, we should
// invalidate cache, otherwise PVAssumeCache.Assume will fail with out of sync
// error.
invalidPredicates.Insert(predicates.CheckVolumeBindingPred)
for k, v := range newPV.Labels { for k, v := range newPV.Labels {
// If PV update modifies the zone/region labels. // If PV update modifies the zone/region labels.
if isZoneRegionLabel(k) && !reflect.DeepEqual(v, oldPV.Labels[k]) { if isZoneRegionLabel(k) && !reflect.DeepEqual(v, oldPV.Labels[k]) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment