You are viewing a plain text version of this content. The canonical link for it is here.
Posted to mapreduce-issues@hadoop.apache.org by "Karthik Kambatla (JIRA)" <ji...@apache.org> on 2014/08/05 00:59:12 UTC

[jira] [Commented] (MAPREDUCE-5968) Work directory is not deleted in DistCache if Exception happen in downloadCacheObject.

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

Karthik Kambatla commented on MAPREDUCE-5968:
---------------------------------------------

Patch looks mostly good. A couple of minor comments: 
# Do we need to set delWorkDir to false at both places? The latter is always executed and the former can be skipped.
{code}
+      // promote the output to the final location
+      if (!localFs.rename(workDir, finalDir)) {
+        localFs.delete(workDir, true);
+        delWorkDir = false;
+        if (!localFs.exists(finalDir)) {
+          throw new IOException("Failed to promote distributed cache object " +
+                                workDir + " to " + finalDir);
+        }
+        // someone else promoted first
+        return 0;
+      }
+      delWorkDir = false;
{code}
# I understand the "-work-" comes from how work directory name is generated. Can we create the work directory name in a method that can be accessed from both the production and test code so the test continues to be useful in the future. 
{code}
+    String workDir = destination.getParent().toString() + "-work-";
{code}

> Work directory is not deleted in  DistCache if Exception happen in downloadCacheObject.
> ---------------------------------------------------------------------------------------
>
>                 Key: MAPREDUCE-5968
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-5968
>             Project: Hadoop Map/Reduce
>          Issue Type: Bug
>          Components: mrv1
>    Affects Versions: 1.2.1
>            Reporter: zhihai xu
>            Assignee: zhihai xu
>         Attachments: MAPREDUCE-5968.branch1.patch
>
>
> Work directory is not deleted in  DistCache if Exception happen in downloadCacheObject. In downloadCacheObject, the cache file will be copied to temporarily work directory first, then the  work directory will be renamed to the final directory. If IOException happens during the copy, the  work directory will not be deleted. This will cause garbage data left in local disk cache. For example If the MR application use Distributed Cache to send a very large Archive/file(50G), if the disk is full during the copy, then the IOException will be triggered, the work directory will be not deleted or renamed and the work directory will occupy a big chunk of disk space.



--
This message was sent by Atlassian JIRA
(v6.2#6252)