You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by om...@apache.org on 2011/03/04 05:49:35 UTC

svn commit: r1077733 - in /hadoop/common/branches/branch-0.20-security-patches/src/mapred/org/apache/hadoop/mapred: DefaultTaskController.java JobLocalizer.java TaskController.java TaskTracker.java

Author: omalley
Date: Fri Mar  4 04:49:35 2011
New Revision: 1077733

URL: http://svn.apache.org/viewvc?rev=1077733&view=rev
Log:
commit 0d2feca8e07e5003e1f133df55355ff59c49c05c
Author: Devaraj Das <dd...@yahoo-inc.com>
Date:   Wed Oct 6 22:02:35 2010 -0700

    Fixed a problem to do with DefaultTaskController trying to authorize for the distributed cache update

Modified:
    hadoop/common/branches/branch-0.20-security-patches/src/mapred/org/apache/hadoop/mapred/DefaultTaskController.java
    hadoop/common/branches/branch-0.20-security-patches/src/mapred/org/apache/hadoop/mapred/JobLocalizer.java
    hadoop/common/branches/branch-0.20-security-patches/src/mapred/org/apache/hadoop/mapred/TaskController.java
    hadoop/common/branches/branch-0.20-security-patches/src/mapred/org/apache/hadoop/mapred/TaskTracker.java

Modified: hadoop/common/branches/branch-0.20-security-patches/src/mapred/org/apache/hadoop/mapred/DefaultTaskController.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.20-security-patches/src/mapred/org/apache/hadoop/mapred/DefaultTaskController.java?rev=1077733&r1=1077732&r2=1077733&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.20-security-patches/src/mapred/org/apache/hadoop/mapred/DefaultTaskController.java (original)
+++ hadoop/common/branches/branch-0.20-security-patches/src/mapred/org/apache/hadoop/mapred/DefaultTaskController.java Fri Mar  4 04:49:35 2011
@@ -163,13 +163,14 @@ public class DefaultTaskController exten
    * downloaded
    * @param taskTracker the connection to the task tracker
    * @throws IOException
+   * @throws InterruptedException
    */
   @Override
   public void initializeJob(String user, String jobid, 
                             Path credentials, Path jobConf, 
                             TaskUmbilicalProtocol taskTracker,
                             InetSocketAddress ttAddr
-                            ) throws IOException {
+                            ) throws IOException, InterruptedException {
     final LocalDirAllocator lDirAlloc = allocator;
     FileSystem localFs = FileSystem.getLocal(getConf());
     JobLocalizer localizer = new JobLocalizer((JobConf)getConf(), user, jobid);

Modified: hadoop/common/branches/branch-0.20-security-patches/src/mapred/org/apache/hadoop/mapred/JobLocalizer.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.20-security-patches/src/mapred/org/apache/hadoop/mapred/JobLocalizer.java?rev=1077733&r1=1077732&r2=1077733&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.20-security-patches/src/mapred/org/apache/hadoop/mapred/JobLocalizer.java (original)
+++ hadoop/common/branches/branch-0.20-security-patches/src/mapred/org/apache/hadoop/mapred/JobLocalizer.java Fri Mar  4 04:49:35 2011
@@ -358,15 +358,16 @@ public class JobLocalizer {
 
   public void localizeJobFiles(JobID jobid, JobConf jConf,
       Path localJobTokenFile, TaskUmbilicalProtocol taskTracker)
-      throws IOException {
+      throws IOException, InterruptedException {
     localizeJobFiles(jobid, jConf,
         lDirAlloc.getLocalPathForWrite(JOBCONF, ttConf), localJobTokenFile,
         taskTracker);
   }
 
-  public void localizeJobFiles(JobID jobid, JobConf jConf,
+  public void localizeJobFiles(final JobID jobid, JobConf jConf,
       Path localJobFile, Path localJobTokenFile,
-      TaskUmbilicalProtocol taskTracker) throws IOException {
+      final TaskUmbilicalProtocol taskTracker) 
+  throws IOException, InterruptedException {
     // Download the job.jar for this job from the system FS
     localizeJobJarFile(jConf);
 
@@ -379,9 +380,17 @@ public class JobLocalizer {
     TaskTracker.resetNumTasksPerJvm(jConf);
 
     //setup the distributed cache
-    long[] sizes = downloadPrivateCache(jConf);
+    final long[] sizes = downloadPrivateCache(jConf);
     if (sizes != null) {
-      taskTracker.updatePrivateDistributedCacheSizes(jobid, sizes);
+      UserGroupInformation ugi = 
+        UserGroupInformation.createRemoteUser(jobid.toString());
+      ugi.doAs(new PrivilegedExceptionAction<Object>() { 
+        public Object run() throws IOException {
+          taskTracker.updatePrivateDistributedCacheSizes(jobid, sizes);
+          return null;
+        }
+      });
+      
     }
 
     // Create job-acls.xml file in job userlog dir and write the needed
@@ -449,7 +458,8 @@ public class JobLocalizer {
   }
 
   public int runSetup(String user, String jobid, Path localJobTokenFile,
-                      TaskUmbilicalProtocol taskTracker) throws IOException {
+                      TaskUmbilicalProtocol taskTracker) throws IOException, 
+                      InterruptedException {
     // load user credentials, configuration
     // ASSUME
     // let $x = $mapred.local.dir

Modified: hadoop/common/branches/branch-0.20-security-patches/src/mapred/org/apache/hadoop/mapred/TaskController.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.20-security-patches/src/mapred/org/apache/hadoop/mapred/TaskController.java?rev=1077733&r1=1077732&r2=1077733&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.20-security-patches/src/mapred/org/apache/hadoop/mapred/TaskController.java (original)
+++ hadoop/common/branches/branch-0.20-security-patches/src/mapred/org/apache/hadoop/mapred/TaskController.java Fri Mar  4 04:49:35 2011
@@ -92,12 +92,13 @@ public abstract class TaskController imp
    * @param taskTracker the connection the task tracker
    * @param ttAddr the tasktracker's RPC address
    * @throws IOException
+   * @throws InterruptedException
    */
   public abstract void initializeJob(String user, String jobid, 
                                      Path credentials, Path jobConf,
                                      TaskUmbilicalProtocol taskTracker,
                                      InetSocketAddress ttAddr) 
-  throws IOException;
+  throws IOException, InterruptedException;
   
   /**
    * Create all of the directories for the task and launches the child jvm.

Modified: hadoop/common/branches/branch-0.20-security-patches/src/mapred/org/apache/hadoop/mapred/TaskTracker.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.20-security-patches/src/mapred/org/apache/hadoop/mapred/TaskTracker.java?rev=1077733&r1=1077732&r2=1077733&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.20-security-patches/src/mapred/org/apache/hadoop/mapred/TaskTracker.java (original)
+++ hadoop/common/branches/branch-0.20-security-patches/src/mapred/org/apache/hadoop/mapred/TaskTracker.java Fri Mar  4 04:49:35 2011
@@ -1027,7 +1027,7 @@ public class TaskTracker implements MRCo
       * To support potential authenticated HDFS accesses, we need the tokens
       */
     rjob.ugi.doAs(new PrivilegedExceptionAction<Object>() {
-      public Object run() throws IOException {
+      public Object run() throws IOException, InterruptedException {
         try {
           final JobConf localJobConf = new JobConf(localJobFile);
           // Setup the public distributed cache
@@ -1057,6 +1057,10 @@ public class TaskTracker implements MRCo
           LOG.warn("Exception while localization " + 
               StringUtils.stringifyException(e));
           throw e;
+        } catch (InterruptedException ie) {
+          LOG.warn("Exception while localization " + 
+              StringUtils.stringifyException(ie));
+          throw ie;
         }
         return null;
       }