Skip to content

Commit 5ad93e6

Browse files
authored
Merge pull request #52 from ZeroMagic/retry_delete
fix: add retry for DeleteVolume
2 parents fc8bb7a + 13f4a7f commit 5ad93e6

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

Gopkg.lock

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/blobfuse/controllerserver.go

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626
"github.com/container-storage-interface/spec/lib/go/csi"
2727
"github.com/csi-driver/blobfuse-csi-driver/pkg/util"
2828

29+
"k8s.io/apimachinery/pkg/util/wait"
2930
"k8s.io/klog"
3031

3132
"google.golang.org/grpc/codes"
@@ -157,9 +158,15 @@ func (d *Driver) DeleteVolume(ctx context.Context, req *csi.DeleteVolumeRequest)
157158
blobClient := client.GetBlobService()
158159
container := blobClient.GetContainerReference(containerName)
159160
// todo: check what value to add into DeleteContainerOptions
160-
_, err = container.DeleteIfExists(nil)
161+
err = wait.ExponentialBackoff(d.cloud.RequestBackoff(), func() (bool, error) {
162+
_, err := container.DeleteIfExists(nil)
163+
if err != nil && !strings.Contains(err.Error(), "ContainerBeingDeleted") {
164+
return false, fmt.Errorf("failed to delete container(%s) on account(%s), error: %v", containerName, accountName, err)
165+
}
166+
return true, nil
167+
})
161168
if err != nil {
162-
return nil, fmt.Errorf("failed to delete container(%s) on account(%s), error: %v", containerName, accountName, err)
169+
return nil, err
163170
}
164171

165172
klog.V(2).Infof("container(%s) under rg(%s) account(%s) volumeID(%s) is deleted successfully", containerName, resourceGroupName, accountName, volumeID)

0 commit comments

Comments
 (0)