[ https://issues.apache.org/jira/browse/HADOOP-11878?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14514413#comment-14514413 ]
Tsuyoshi Ozawa commented on HADOOP-11878: ----------------------------------------- Thank you for taking this issue. Path can be null when baseDirs is not null and subDir is null. {code} @Override public void deleteAsUser(String user, Path subDir, Path... baseDirs) throws IOException, InterruptedException { if (baseDirs == null || baseDirs.length == 0) { LOG.info("Deleting absolute path : " + subDir); ... return; } {code} According to javadoc of FileContext, FileContext.delete() should throw InvalidPathException if path, f, is invalid. We can use Preconditions.checkNotNull for the validation. This change of behaviour can break backward compatibility, though it should be fixed. > NPE in FileContext.java # fixRelativePart(Path p) > ------------------------------------------------- > > Key: HADOOP-11878 > URL: https://issues.apache.org/jira/browse/HADOOP-11878 > Project: Hadoop Common > Issue Type: Bug > Reporter: Brahma Reddy Battula > Assignee: Brahma Reddy Battula > Attachments: HADOOP-11878.patch > > > Following will come when job failed and deletion service trying to delete the > log fiels > 2015-04-27 14:56:17,113 INFO > org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor: Deleting > absolute path : null > 2015-04-27 14:56:17,113 ERROR > org.apache.hadoop.yarn.server.nodemanager.DeletionService: Exception during > execution of task in DeletionService > java.lang.NullPointerException > at > org.apache.hadoop.fs.FileContext.fixRelativePart(FileContext.java:274) > at org.apache.hadoop.fs.FileContext.delete(FileContext.java:761) > at > org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.deleteAsUser(DefaultContainerExecutor.java:457) > at > org.apache.hadoop.yarn.server.nodemanager.DeletionService$FileDeletionTask.run(DeletionService.java:293) > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > at java.lang.Thread.run(Thread.java:745) -- This message was sent by Atlassian JIRA (v6.3.4#6332)