Author: tucu Date: Wed May 23 22:23:50 2012 New Revision: 1342076 URL: http://svn.apache.org/viewvc?rev=1342076&view=rev Log: Merge -r 1342074:1342075 from trunk to branch. FIXES: MAPREDUCE-4276
Modified: hadoop/common/branches/branch-2/hadoop-mapreduce-project/CHANGES.txt hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/DeletionService.java hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/TestDeletionService.java Modified: hadoop/common/branches/branch-2/hadoop-mapreduce-project/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-mapreduce-project/CHANGES.txt?rev=1342076&r1=1342075&r2=1342076&view=diff ============================================================================== --- hadoop/common/branches/branch-2/hadoop-mapreduce-project/CHANGES.txt (original) +++ hadoop/common/branches/branch-2/hadoop-mapreduce-project/CHANGES.txt Wed May 23 22:23:50 2012 @@ -27,6 +27,8 @@ Release 2.0.1-alpha - UNRELEASED MAPREDUCE-4262. NM gives wrong log message saying "Connected to ResourceManager" before trying to connect. (Devaraj K via tgraves) + MAPREDUCE-4276. Allow setting yarn.nodemanager.delete.debug-delay-sec property to "-1" for easier container debugging. (ahmed via tucu) + Release 2.0.0-alpha - UNRELEASED INCOMPATIBLE CHANGES Modified: hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/DeletionService.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/DeletionService.java?rev=1342076&r1=1342075&r2=1342076&view=diff ============================================================================== --- hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/DeletionService.java (original) +++ hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/DeletionService.java Wed May 23 22:23:50 2012 @@ -68,8 +68,10 @@ public class DeletionService extends Abs */ public void delete(String user, Path subDir, Path... baseDirs) { // TODO if parent owned by NM, rename within parent inline - sched.schedule(new FileDeletion(user, subDir, baseDirs), - debugDelay, TimeUnit.SECONDS); + if (debugDelay != -1) { + sched.schedule(new FileDeletion(user, subDir, baseDirs), debugDelay, + TimeUnit.SECONDS); + } } @Override Modified: hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/TestDeletionService.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/TestDeletionService.java?rev=1342076&r1=1342075&r2=1342076&view=diff ============================================================================== --- hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/TestDeletionService.java (original) +++ hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/TestDeletionService.java Wed May 23 22:23:50 2012 @@ -164,6 +164,39 @@ public class TestDeletionService { } @Test + public void testNoDelete() throws Exception { + Random r = new Random(); + long seed = r.nextLong(); + r.setSeed(seed); + System.out.println("SEED: " + seed); + List<Path> dirs = buildDirs(r, base, 20); + createDirs(new Path("."), dirs); + FakeDefaultContainerExecutor exec = new FakeDefaultContainerExecutor(); + Configuration conf = new Configuration(); + conf.setInt(YarnConfiguration.DEBUG_NM_DELETE_DELAY_SEC, -1); + exec.setConf(conf); + DeletionService del = new DeletionService(exec); + del.init(conf); + del.start(); + try { + for (Path p : dirs) { + del.delete((Long.parseLong(p.getName()) % 2) == 0 ? null : "dingo", p, + null); + } + int msecToWait = 20 * 1000; + for (Path p : dirs) { + while (msecToWait > 0 && lfs.util().exists(p)) { + Thread.sleep(100); + msecToWait -= 100; + } + assertTrue(lfs.util().exists(p)); + } + } finally { + del.stop(); + } + } + + @Test public void testStopWithDelayedTasks() throws Exception { DeletionService del = new DeletionService(Mockito.mock(ContainerExecutor.class)); Configuration conf = new YarnConfiguration();