瀏覽代碼

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

git-svn-id: https://svn.apache.org/repos/asf/hadoop/core/branches/branch-0.19@743754 13f79535-47bb-0310-9956-ffa450edef68
Hemanth Yamijala 16 年之前
父節點
當前提交
4dbb680e11

+ 3 - 0
CHANGES.txt

@@ -99,6 +99,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

@@ -2261,6 +2261,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); 
   }
 
@@ -2272,7 +2276,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

@@ -26,6 +26,7 @@ import org.apache.hadoop.io.WritableComparable;
 import org.apache.hadoop.mapred.SortValidator.RecordStatsChecker.NonSplitableSequenceFileInputFormat;
 import org.apache.hadoop.mapred.ThreadedMapBenchmark.RandomInputFormat;
 import org.apache.hadoop.mapred.lib.IdentityReducer;
+import org.apache.hadoop.security.UserGroupInformation;
 
 import junit.framework.TestCase;
 import java.io.*;
@@ -670,6 +671,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);