SLIDER-622 spin for deletion

Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/75963870
Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/75963870
Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/75963870

Branch: refs/heads/releases/slider-0.60
Commit: 7596387040446aa8bac157f09fc028fe4b699981
Parents: 632346e
Author: Steve Loughran <[email protected]>
Authored: Tue Nov 11 13:50:59 2014 +0000
Committer: Steve Loughran <[email protected]>
Committed: Tue Nov 11 15:04:47 2014 +0000

----------------------------------------------------------------------
 .../slider/test/YarnMiniClusterTestBase.groovy  | 32 +++++++++++++++++---
 1 file changed, 27 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/75963870/slider-core/src/test/groovy/org/apache/slider/test/YarnMiniClusterTestBase.groovy
----------------------------------------------------------------------
diff --git 
a/slider-core/src/test/groovy/org/apache/slider/test/YarnMiniClusterTestBase.groovy
 
b/slider-core/src/test/groovy/org/apache/slider/test/YarnMiniClusterTestBase.groovy
index dde8239..0850d25 100644
--- 
a/slider-core/src/test/groovy/org/apache/slider/test/YarnMiniClusterTestBase.groovy
+++ 
b/slider-core/src/test/groovy/org/apache/slider/test/YarnMiniClusterTestBase.groovy
@@ -18,7 +18,6 @@
 
 package org.apache.slider.test
 
-import groovy.transform.CompileStatic
 import groovy.util.logging.Slf4j
 import org.apache.commons.logging.Log
 import org.apache.commons.logging.LogFactory
@@ -493,10 +492,7 @@ public abstract class YarnMiniClusterTestBase extends 
ServiceLauncherBaseTest {
       log.info("deleting customer data at $clusterDir")
       //this is a safety check to stop us doing something stupid like deleting 
/
       assert clusterDir.toString().contains("/.slider/")
-      dfs.delete(clusterDir, true)
-      sleep(1000)
-      dfs.delete(clusterDir, true)
-      assert !dfs.exists(clusterDir), "delete operation failed —application 
in use?"
+      rigorousDelete(dfs, clusterDir, 60000)
     }
 
 
@@ -544,6 +540,32 @@ public abstract class YarnMiniClusterTestBase extends 
ServiceLauncherBaseTest {
   }
 
   /**
+   * Delete with some pauses and backoff; designed to handle slow delete
+   * operation in windows
+   * @param dfs
+   * @param clusterDir
+   */
+  public void rigorousDelete(
+      HadoopFS dfs, Path clusterDir, long timeout) {
+    Duration duration = new Duration(timeout)
+    duration.start()
+    boolean deleted = false;
+    while (!deleted) {
+      dfs.delete(clusterDir, true)
+      deleted = !dfs.exists(clusterDir)
+      if (!deleted ) {
+        if (duration.limitExceeded) {
+          assert !dfs.exists(
+              clusterDir), "delete operation failed —directory in use?"
+  
+        }
+        sleep(1000)
+      }
+
+    }
+  }
+
+  /**
    * Add arguments to launch Slider with.
    *
    * Extra arguments are added after standard arguments and before roles.

Reply via email to