From b9afd2d34ad90bddb6e7ebfff161b9c7f8b9a348 Mon Sep 17 00:00:00 2001 From: fankangbest Date: Wed, 25 Mar 2020 14:00:56 +0800 Subject: [PATCH] do not remove volume dir when saveVolumeData fails --- pkg/volume/csi/csi_attacher.go | 8 +++----- pkg/volume/csi/csi_plugin.go | 11 ++++++++--- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/pkg/volume/csi/csi_attacher.go b/pkg/volume/csi/csi_attacher.go index fbeebdb40f7..9aecfdd2ae7 100644 --- a/pkg/volume/csi/csi_attacher.go +++ b/pkg/volume/csi/csi_attacher.go @@ -297,11 +297,9 @@ func (c *csiAttacher) MountDevice(spec *volume.Spec, devicePath string, deviceMo volDataKey.driverName: csiSource.Driver, } if err = saveVolumeData(dataDir, volDataFileName, data); err != nil { - klog.Error(log("failed to save volume info data: %v", err)) - if cleanErr := os.RemoveAll(dataDir); cleanErr != nil { - klog.Error(log("failed to remove dir after error [%s]: %v", dataDir, cleanErr)) - } - return err + errMsg := log("failed to save volume info data: %v", err) + klog.Error(errMsg) + return errors.New(errMsg) } defer func() { // Only if there was an error and volume operation was considered diff --git a/pkg/volume/csi/csi_plugin.go b/pkg/volume/csi/csi_plugin.go index 5291a729e7d..aaae2f7bdf2 100644 --- a/pkg/volume/csi/csi_plugin.go +++ b/pkg/volume/csi/csi_plugin.go @@ -457,10 +457,15 @@ func (p *csiPlugin) NewMounter( volData[volDataKey.attachmentID] = attachID if err := saveVolumeData(dataDir, volDataFileName, volData); err != nil { - if removeErr := os.RemoveAll(dataDir); removeErr != nil { - klog.Error(log("failed to remove dir after error [%s]: %v", dataDir, removeErr)) + errorMsg := log("csi.NewMounter failed to save volume info data: %v", err) + klog.Error(errorMsg) + + // attempt to cleanup volume mount dir. + if removeMountDirErr := removeMountDir(p, dir); removeMountDirErr != nil { + klog.Error(log("csi.NewMounter failed to remove mount dir [%s]: %v", dir, removeMountDirErr)) } - return nil, errors.New(log("failed to save volume info data: %v", err)) + + return nil, errors.New(errorMsg) } klog.V(4).Info(log("mounter created successfully"))