Merge pull request #90348 from misterikkit/vsphere-race

Fix race in vsphere cloud provider
This commit is contained in:
Kubernetes Prow Robot 2020-04-22 19:22:34 -07:00 committed by GitHub
commit 319db5975b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1071,11 +1071,11 @@ func (vs *VSphere) DisksAreAttached(nodeVolumes map[k8stypes.NodeName][]string)
dcNodes[VC_DC] = append(dcNodes[VC_DC], nodeName) dcNodes[VC_DC] = append(dcNodes[VC_DC], nodeName)
} }
for _, nodes := range dcNodes { for _, nodeNames := range dcNodes {
localAttachedMap := make(map[string]map[string]bool) localAttachedMap := make(map[string]map[string]bool)
localAttachedMaps = append(localAttachedMaps, localAttachedMap) localAttachedMaps = append(localAttachedMaps, localAttachedMap)
// Start go routines per VC-DC to check disks are attached // Start go routines per VC-DC to check disks are attached
go func() { go func(nodes []k8stypes.NodeName) {
nodesToRetryLocal, err := vs.checkDiskAttached(ctx, nodes, nodeVolumes, localAttachedMap, retry) nodesToRetryLocal, err := vs.checkDiskAttached(ctx, nodes, nodeVolumes, localAttachedMap, retry)
if err != nil { if err != nil {
if !vclib.IsManagedObjectNotFoundError(err) { if !vclib.IsManagedObjectNotFoundError(err) {
@ -1089,7 +1089,7 @@ func (vs *VSphere) DisksAreAttached(nodeVolumes map[k8stypes.NodeName][]string)
nodesToRetry = append(nodesToRetry, nodesToRetryLocal...) nodesToRetry = append(nodesToRetry, nodesToRetryLocal...)
nodesToRetryMutex.Unlock() nodesToRetryMutex.Unlock()
wg.Done() wg.Done()
}() }(nodeNames)
wg.Add(1) wg.Add(1)
} }
wg.Wait() wg.Wait()