Author: yhemanth
Date: Sat Feb 28 07:25:58 2009
New Revision: 748785

URL: http://svn.apache.org/viewvc?rev=748785&view=rev
Log:
HADOOP-5146. Fixes a race condition that causes LocalDirAllocator to miss 
files. Contributed by Devaraj Das.

Modified:
    hadoop/core/branches/branch-0.19/CHANGES.txt
    
hadoop/core/branches/branch-0.19/src/mapred/org/apache/hadoop/mapred/TaskRunner.java

Modified: hadoop/core/branches/branch-0.19/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.19/CHANGES.txt?rev=748785&r1=748784&r2=748785&view=diff
==============================================================================
--- hadoop/core/branches/branch-0.19/CHANGES.txt (original)
+++ hadoop/core/branches/branch-0.19/CHANGES.txt Sat Feb 28 07:25:58 2009
@@ -29,6 +29,9 @@
     job is not in memory and a tasktracker comes to the jobtracker with a 
status
     report of a task belonging to that job. (Amar Kamat via ddas)
 
+    HADOOP-5146. Fixes a race condition that causes LocalDirAllocator to miss
+    files.  (Devaraj Das via yhemanth)
+
 Release 0.19.1 - 2009-02-23
 
   INCOMPATIBLE CHANGES

Modified: 
hadoop/core/branches/branch-0.19/src/mapred/org/apache/hadoop/mapred/TaskRunner.java
URL: 
http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.19/src/mapred/org/apache/hadoop/mapred/TaskRunner.java?rev=748785&r1=748784&r2=748785&view=diff
==============================================================================
--- 
hadoop/core/branches/branch-0.19/src/mapred/org/apache/hadoop/mapred/TaskRunner.java
 (original)
+++ 
hadoop/core/branches/branch-0.19/src/mapred/org/apache/hadoop/mapred/TaskRunner.java
 Sat Feb 28 07:25:58 2009
@@ -139,13 +139,9 @@
             String cacheId = DistributedCache.makeRelative(archives[i],conf);
             String cachePath = TaskTracker.getCacheSubdir() + 
                                  Path.SEPARATOR + cacheId;
-            if (lDirAlloc.ifExists(cachePath, conf)) {
-              localPath =  lDirAlloc.getLocalPathToRead(cachePath, conf);
-            }
-            else {
-              localPath = lDirAlloc.getLocalPathForWrite(cachePath,
+            
+            localPath = lDirAlloc.getLocalPathForWrite(cachePath,
                                       fileStatus.getLen(), conf);
-            }
             baseDir = localPath.toString().replace(cacheId, "");
             p[i] = DistributedCache.getLocalCache(archives[i], conf, 
                                                   new Path(baseDir),
@@ -169,12 +165,9 @@
             String cacheId = DistributedCache.makeRelative(files[i], conf);
             String cachePath = TaskTracker.getCacheSubdir() +
                                  Path.SEPARATOR + cacheId;
-            if (lDirAlloc.ifExists(cachePath,conf)) {
-              localPath =  lDirAlloc.getLocalPathToRead(cachePath, conf);
-            } else {
-              localPath = lDirAlloc.getLocalPathForWrite(cachePath,
+            
+            localPath = lDirAlloc.getLocalPathForWrite(cachePath,
                                       fileStatus.getLen(), conf);
-            }
             baseDir = localPath.toString().replace(cacheId, "");
             p[i] = DistributedCache.getLocalCache(files[i], conf, 
                                                   new Path(baseDir),


Reply via email to