From 97a5fc096508d14fdd7b7c6a7cea3e40c8e8bcb1 Mon Sep 17 00:00:00 2001 From: Tomas Smetana Date: Thu, 30 Apr 2020 13:32:40 +0200 Subject: [PATCH] VSphere cloud provider: Fix race in disk provisioning --- .../legacy-cloud-providers/vsphere/vclib/diskmanagers/vdm.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/staging/src/k8s.io/legacy-cloud-providers/vsphere/vclib/diskmanagers/vdm.go b/staging/src/k8s.io/legacy-cloud-providers/vsphere/vclib/diskmanagers/vdm.go index 08f650c70be..0bea022fe8f 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/vsphere/vclib/diskmanagers/vdm.go +++ b/staging/src/k8s.io/legacy-cloud-providers/vsphere/vclib/diskmanagers/vdm.go @@ -70,6 +70,11 @@ func (diskManager virtualDiskManager) Create(ctx context.Context, datastore *vcl taskInfo, err := task.WaitForResult(ctx, nil) vclib.RecordvSphereMetric(vclib.APICreateVolume, requestTime, err) if err != nil { + if isAlreadyExists(diskManager.diskPath, err) { + // The disk already exists, log info message and return success + klog.V(vclib.LogLevel).Infof("File: %v already exists", diskManager.diskPath) + return diskManager.diskPath, nil + } klog.Errorf("Failed to complete virtual disk creation: %s. err: %+v", diskManager.diskPath, err) return "", err }