From 69a2562a7527eda89011fb9da36356b8f2b68868 Mon Sep 17 00:00:00 2001 From: andyzhangx Date: Tue, 12 Nov 2019 23:12:18 +0000 Subject: [PATCH] fix vmss dirty cache issue add logging --- .../azure/azure_controller_vmss.go | 8 ++------ .../legacy-cloud-providers/azure/azure_vmss.go | 12 ++++-------- .../legacy-cloud-providers/azure/azure_vmss_cache.go | 1 + 3 files changed, 7 insertions(+), 14 deletions(-) diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_controller_vmss.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_controller_vmss.go index e76599756da2..55e325cd08bf 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_controller_vmss.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_controller_vmss.go @@ -84,9 +84,7 @@ func (ss *scaleSet) AttachDisk(isManagedDisk bool, diskName, diskURI string, nod defer cancel() // Invalidate the cache right after updating - if err = ss.deleteCacheForNode(vmName); err != nil { - return err - } + defer ss.deleteCacheForNode(vmName) klog.V(2).Infof("azureDisk - update(%s): vm(%s) - attach disk(%s, %s)", nodeResourceGroup, nodeName, diskName, diskURI) _, err = ss.VirtualMachineScaleSetVMsClient.Update(ctx, nodeResourceGroup, ssName, instanceID, newVM, "attach_disk") @@ -156,9 +154,7 @@ func (ss *scaleSet) DetachDisk(diskName, diskURI string, nodeName types.NodeName defer cancel() // Invalidate the cache right after updating - if err = ss.deleteCacheForNode(vmName); err != nil { - return nil, err - } + defer ss.deleteCacheForNode(vmName) klog.V(2).Infof("azureDisk - update(%s): vm(%s) - detach disk(%s, %s)", nodeResourceGroup, nodeName, diskName, diskURI) return ss.VirtualMachineScaleSetVMsClient.Update(ctx, nodeResourceGroup, ssName, instanceID, newVM, "detach_disk") diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_vmss.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_vmss.go index 85e03aec46b3..cd074ed75786 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_vmss.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_vmss.go @@ -778,10 +778,8 @@ func (ss *scaleSet) EnsureHostInPool(service *v1.Service, nodeName types.NodeNam return err } - // Invalidate the cache since we would update it. - if err = ss.deleteCacheForNode(vmName); err != nil { - return err - } + // Invalidate the cache since right after update + defer ss.deleteCacheForNode(vmName) // Update vmssVM with backoff. ctx, cancel := getContextWithCancel() @@ -1053,10 +1051,8 @@ func (ss *scaleSet) ensureBackendPoolDeletedFromNode(service *v1.Service, nodeNa return err } - // Invalidate the cache since we would update it. - if err = ss.deleteCacheForNode(nodeName); err != nil { - return err - } + // Invalidate the cache since right after update + defer ss.deleteCacheForNode(nodeName) // Update vmssVM with backoff. ctx, cancel := getContextWithCancel() diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_vmss_cache.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_vmss_cache.go index 65b0d62fc4d8..5ee0c5756439 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_vmss_cache.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_vmss_cache.go @@ -115,6 +115,7 @@ func (ss *scaleSet) newVMSSVirtualMachinesCache() (*timedCache, error) { func (ss *scaleSet) deleteCacheForNode(nodeName string) error { cached, err := ss.vmssVMCache.Get(vmssVirtualMachinesKey, cacheReadTypeUnsafe) if err != nil { + klog.Errorf("deleteCacheForNode(%s) failed with error: %v", nodeName, err) return err }