From 041fa6477b629de331f19ea886fde1bc4151063c Mon Sep 17 00:00:00 2001 From: Jing Xu Date: Fri, 18 Nov 2016 14:15:12 -0800 Subject: [PATCH] remove checking mount point in cleanupOrphanedPodDirs To avoid nfs hung problem, remove the mountpoint checking code in cleanupOrphanedPodDirs(). This removal should still be safe. --- pkg/kubelet/kubelet.go | 4 ++-- pkg/kubelet/kubelet_volumes.go | 17 ++--------------- 2 files changed, 4 insertions(+), 17 deletions(-) diff --git a/pkg/kubelet/kubelet.go b/pkg/kubelet/kubelet.go index 67cb8f9c0ff..f406a838745 100644 --- a/pkg/kubelet/kubelet.go +++ b/pkg/kubelet/kubelet.go @@ -1851,8 +1851,8 @@ func (kl *Kubelet) syncLoopIteration(configCh <-chan kubetypes.PodUpdate, handle } case <-housekeepingCh: if !kl.sourcesReady.AllReady() { - // If the sources aren't ready, skip housekeeping, as we may - // accidentally delete pods from unready sources. + // If the sources aren't ready or volume manager has not yet synced the states, + // skip housekeeping, as we may accidentally delete pods from unready sources. glog.V(4).Infof("SyncLoop (housekeeping, skipped): sources aren't ready yet.") } else { glog.V(4).Infof("SyncLoop (housekeeping)") diff --git a/pkg/kubelet/kubelet_volumes.go b/pkg/kubelet/kubelet_volumes.go index f9fabcdb9e3..68a75d4a9c4 100644 --- a/pkg/kubelet/kubelet_volumes.go +++ b/pkg/kubelet/kubelet_volumes.go @@ -25,7 +25,6 @@ import ( kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" "k8s.io/kubernetes/pkg/types" utilerrors "k8s.io/kubernetes/pkg/util/errors" - "k8s.io/kubernetes/pkg/util/mount" "k8s.io/kubernetes/pkg/util/sets" "k8s.io/kubernetes/pkg/volume" volumetypes "k8s.io/kubernetes/pkg/volume/util/types" @@ -105,24 +104,12 @@ func (kl *Kubelet) cleanupOrphanedPodDirs( glog.V(3).Infof("Orphaned pod %q found, but volumes are not cleaned up", uid) continue } - // Check whether volume is still mounted on disk. If so, do not delete directory + // If there are still volume directories, do not delete directory volumePaths, err := kl.getPodVolumePathListFromDisk(uid) - if err != nil { + if err != nil || len(volumePaths) > 0 { glog.Errorf("Orphaned pod %q found, but error %v occured during reading volume dir from disk", uid, err) continue - } else if len(volumePaths) > 0 { - for _, path := range volumePaths { - notMount, err := mount.IsNotMountPoint(path) - if err == nil && notMount { - glog.V(2).Infof("Volume path %q is no longer mounted, remove it", path) - os.Remove(path) - } else { - glog.Errorf("Orphaned pod %q found, but it might still mounted with error %v", uid, err) - } - } - continue } - glog.V(3).Infof("Orphaned pod %q found, removing", uid) if err := os.RemoveAll(kl.getPodDir(uid)); err != nil { glog.Errorf("Failed to remove orphaned pod %q dir; err: %v", uid, err)