[ 
https://issues.apache.org/jira/browse/HDFS-5546?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13829261#comment-13829261
 ] 

Colin Patrick McCabe commented on HDFS-5546:
--------------------------------------------

The best solution is probably to catch the FNF in #3, and simply not put that 
directory in the listing, since it doesn't exist by that name any more. I guess 
you could argue that we should re-list the parent directory in this case to 
make sure new stuff doesn't exist in it (like a renamed version of D), but that 
seems like it would open a difficult can of worms since we'd have arbitrary 
levels of backtracking. Also, we can't really know whether any of the work we 
had already done is still valid, since the names of directories could all have 
changed.

> race condition crashes "hadoop ls -R" when directories are moved/removed
> ------------------------------------------------------------------------
>
>                 Key: HDFS-5546
>                 URL: https://issues.apache.org/jira/browse/HDFS-5546
>             Project: Hadoop HDFS
>          Issue Type: Bug
>    Affects Versions: 2.2.0
>            Reporter: Colin Patrick McCabe
>            Priority: Minor
>
> This seems to be a rare race condition where we have a sequence of events 
> like this:
> 1. org.apache.hadoop.shell.Ls calls DFS#getFileStatus on directory D.
> 2. someone deletes or moves directory D
> 3. org.apache.hadoop.shell.Ls calls PathData#getDirectoryContents(D), which 
> calls DFS#listStatus(D). This throws FileNotFoundException.
> 4. ls command terminates with FNF



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to