[ 
https://issues.apache.org/jira/browse/HDFS-67?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Harsh J resolved HDFS-67.
-------------------------

    Resolution: Not A Problem

Not a problem after Dhruba's HDFS-1707.
                
> /tmp/hadoop-${user}/dfs/tmp/tmp/client-${long}.tmp is not cleanup correctly
> ---------------------------------------------------------------------------
>
>                 Key: HDFS-67
>                 URL: https://issues.apache.org/jira/browse/HDFS-67
>             Project: Hadoop HDFS
>          Issue Type: Bug
>            Reporter: Benjamin Francisoud
>         Attachments: patch-DFSClient-HADOOP-2561.diff
>
>
> Diretory "/tmp/hadoop-${user}/dfs/tmp/tmp" is being filled with those kinfd 
> of files: client-226966559287638337420857.tmp
> I tried to look at the code and found:
> h3. DFSClient.java
> src/java/org/apache/hadoop/dfs/DFSClient.java
> {code:java}
> private void closeBackupStream() throws IOException {...}
> /* Similar to closeBackupStream(). Theoritically deleting a file
>  * twice could result in deleting a file that we should not.
>  */
> private void deleteBackupFile() {...}
> private File newBackupFile() throws IOException {
> String name = "tmp" + File.separator +
>                      "client-" + Math.abs(r.nextLong());
> File result = dirAllocator.createTmpFileForWrite(name,
>                                                        2 * blockSize,
>                                                        conf);
> return result;
> }
> {code}
> h3. LocalDirAllocator
> src/java/org/apache/hadoop/fs/LocalDirAllocator.java#AllocatorPerContext.java
> {code:java}
> /** Creates a file on the local FS. Pass size as -1 if not known apriori. We
>  *  round-robin over the set of disks (via the configured dirs) and return
>  *  a file on the first path which has enough space. The file is guaranteed
>  *  to go away when the JVM exits.
>  */
> public File createTmpFileForWrite(String pathStr, long size,
>         Configuration conf) throws IOException {
> // find an appropriate directory
> Path path = getLocalPathForWrite(pathStr, size, conf);
> File dir = new File(path.getParent().toUri().getPath());
> String prefix = path.getName();
> // create a temp file on this directory
> File result = File.createTempFile(prefix, null, dir);
> result.deleteOnExit();
> return result;
> }
> {code}
> First it seems to me it's a bit of a mess here I don't know if it's 
> DFSClient.java#deleteBackupFile() or 
> LocalDirAllocator#createTmpFileForWrite() {deleteOnExit(); ) who is call ... 
> or both. Why not keep it dry and delete it only once.
> But the most important is the "deleteOnExit();" since it mean if it is never 
> restarted it will never delete files :(

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to