Browse Source

commit 25e0347cbc64d2e2238bb457e963f108272873f5
Author: Yahoo\! <ltucker@yahoo-inc.com>
Date: Thu Aug 13 09:38:53 2009 -0700

Applying patch 2935902.mr817delta.patch


git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.20-security-patches@1076971 13f79535-47bb-0310-9956-ffa450edef68

Owen O'Malley 14 years ago
parent
commit
9b615ec717

+ 3 - 0
src/mapred/org/apache/hadoop/mapred/JobHistory.java

@@ -197,6 +197,9 @@ public class JobHistory {
     }
 
     void moveToDone(final JobID id) {
+      if (disableHistory) {
+        return;
+      }
       final List<Path> paths = new ArrayList<Path>();
       final Path historyFile = fileManager.getHistoryFile(id);
       if (historyFile == null) {

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

@@ -519,15 +519,19 @@ public class JobTracker implements MRConstants, InterTrackerProtocol,
             }
           }
           synchronized (userToJobsMap) {
-            for (Map.Entry<String, ArrayList<JobInProgress>> entry : 
-                userToJobsMap.entrySet()) {
-              String user = entry.getKey();
+            Iterator<Map.Entry<String, ArrayList<JobInProgress>>> 
+                userToJobsMapIt = userToJobsMap.entrySet().iterator();
+            while (userToJobsMapIt.hasNext()) {
+              Map.Entry<String, ArrayList<JobInProgress>> entry = 
+                userToJobsMapIt.next();
               ArrayList<JobInProgress> userJobs = entry.getValue();
               Iterator<JobInProgress> it = userJobs.iterator();
               while (it.hasNext() && 
                   userJobs.size() > MAX_COMPLETE_USER_JOBS_IN_MEMORY) {
                 JobInProgress jobUser = it.next();
                 if (retiredJobs.contains(jobUser)) {
+                  LOG.info("Removing from userToJobsMap: " + 
+                      jobUser.getJobID());
                   it.remove();
                 } else if (minConditionToRetire(jobUser, now)) {
                   LOG.info("User limit exceeded. Marking job: " + 
@@ -537,7 +541,7 @@ public class JobTracker implements MRConstants, InterTrackerProtocol,
                 }
               }
               if (userJobs.isEmpty()) {
-                userToJobsMap.remove(user);
+                userToJobsMapIt.remove();
               }
             }
           }