Sfoglia il codice sorgente

Merge -r 743744:743745 from trunk to branch 0.20 to fix HADOOP-5166.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/core/branches/branch-0.20@743748 13f79535-47bb-0310-9956-ffa450edef68
Hemanth Yamijala 16 anni fa
parent
commit
8ffbe3c4ee

+ 3 - 0
CHANGES.txt

@@ -684,6 +684,9 @@ Release 0.19.1 - Unreleased
     HADOOP-4494. Allow libhdfs to append to files.
     (Pete Wyckoff via dhruba)
 
+    HADOOP-5166. Fix JobTracker restart to work when ACLs are configured
+    for the JobTracker. (Amar Kamat via yhemanth).
+
 Release 0.19.0 - 2008-11-18
 
   INCOMPATIBLE CHANGES

+ 4 - 1
src/mapred/org/apache/hadoop/mapred/JobTracker.java

@@ -2672,6 +2672,10 @@ public class JobTracker implements MRConstants, InterTrackerProtocol,
     }
     
     JobInProgress job = new JobInProgress(jobId, this, this.conf);
+
+    // check for access
+    checkAccess(job, QueueManager.QueueOperation.SUBMIT_JOB);
+
    return addJob(jobId, job); 
   }
 
@@ -2683,7 +2687,6 @@ public class JobTracker implements MRConstants, InterTrackerProtocol,
   private synchronized JobStatus addJob(JobID jobId, JobInProgress job) 
   throws IOException {
     totalSubmissions++;
-    checkAccess(job, QueueManager.QueueOperation.SUBMIT_JOB);
 
     synchronized (jobs) {
       synchronized (taskScheduler) {

+ 5 - 0
src/test/org/apache/hadoop/mapred/TestJobTrackerRestart.java

@@ -21,6 +21,7 @@ import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.*;
 import org.apache.hadoop.hdfs.MiniDFSCluster;
 import org.apache.hadoop.mapred.UtilsForTests;
+import org.apache.hadoop.security.UserGroupInformation;
 
 import junit.framework.TestCase;
 import java.io.*;
@@ -432,6 +433,10 @@ public class TestJobTrackerRestart extends TestCase {
       jtConf.set("mapred.jobtracker.job.history.buffer.size", "1024");
       jtConf.setInt("mapred.tasktracker.reduce.tasks.maximum", 1);
       jtConf.setLong("mapred.tasktracker.expiry.interval", 25 * 1000);
+      jtConf.setBoolean("mapred.acls.enabled", true);
+      // get the user group info
+      UserGroupInformation ugi = UserGroupInformation.getCurrentUGI();
+      jtConf.set("mapred.queue.default.acl-submit-job", ugi.getUserName());
       
       mr = new MiniMRCluster(1, namenode, 1, null, null, jtConf);