MAPREDUCE-4276. Allow setting yarn.nodemanager.delete.debug-delay-sec property to -1 for easier container debugging. (ahmed via tucu)
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1342075 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
266a0f1de9
commit
cf7b017422
|
@ -136,6 +136,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
|
||||
|
|
|
@ -68,8 +68,10 @@ public class DeletionService extends AbstractService {
|
|||
*/
|
||||
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
|
||||
|
|
|
@ -163,6 +163,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));
|
||||
|
|
Loading…
Reference in New Issue