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 2008/09/29 23:02:33 UTC

svn commit: r700256 - in /hadoop/core/branches/branch-0.19: CHANGES.txt src/contrib/capacity-scheduler/src/java/org/apache/hadoop/mapred/CapacityTaskScheduler.java src/contrib/capacity-scheduler/src/test/org/apache/hadoop/mapred/TestCapacityScheduler.java

Author: omalley
Date: Mon Sep 29 14:02:32 2008
New Revision: 700256

URL: http://svn.apache.org/viewvc?rev=700256&view=rev
Log:
HADOOP-4274. Capacity scheduler accidently modifies the underlying 
data structures when browing the job lists. (Hemanth Yamijala via omalley)

Modified:
    hadoop/core/branches/branch-0.19/CHANGES.txt
    hadoop/core/branches/branch-0.19/src/contrib/capacity-scheduler/src/java/org/apache/hadoop/mapred/CapacityTaskScheduler.java
    hadoop/core/branches/branch-0.19/src/contrib/capacity-scheduler/src/test/org/apache/hadoop/mapred/TestCapacityScheduler.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=700256&r1=700255&r2=700256&view=diff
==============================================================================
--- hadoop/core/branches/branch-0.19/CHANGES.txt (original)
+++ hadoop/core/branches/branch-0.19/CHANGES.txt Mon Sep 29 14:02:32 2008
@@ -760,6 +760,9 @@
     HADOOP-4237. Fixes the TestStreamingBadRecords.testNarrowDown testcase.
     (Sharad Agarwal via ddas)
 
+    HADOOP-4274. Capacity scheduler accidently modifies the underlying 
+    data structures when browing the job lists. (Hemanth Yamijala via omalley)
+
 Release 0.18.2 - Unreleased
 
   BUG FIXES

Modified: hadoop/core/branches/branch-0.19/src/contrib/capacity-scheduler/src/java/org/apache/hadoop/mapred/CapacityTaskScheduler.java
URL: http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.19/src/contrib/capacity-scheduler/src/java/org/apache/hadoop/mapred/CapacityTaskScheduler.java?rev=700256&r1=700255&r2=700256&view=diff
==============================================================================
--- hadoop/core/branches/branch-0.19/src/contrib/capacity-scheduler/src/java/org/apache/hadoop/mapred/CapacityTaskScheduler.java (original)
+++ hadoop/core/branches/branch-0.19/src/contrib/capacity-scheduler/src/java/org/apache/hadoop/mapred/CapacityTaskScheduler.java Mon Sep 29 14:02:32 2008
@@ -1124,10 +1124,11 @@
   
   @Override
   public synchronized Collection<JobInProgress> getJobs(String queueName) {
-    Collection<JobInProgress> jobCollection = 
-      jobQueuesManager.getRunningJobQueue(queueName);
-    if(jobCollection == null) {
-      jobCollection = new ArrayList<JobInProgress>();
+    Collection<JobInProgress> jobCollection = new ArrayList<JobInProgress>();
+    Collection<JobInProgress> runningJobs = 
+        jobQueuesManager.getRunningJobQueue(queueName);
+    if (runningJobs != null) {
+      jobCollection.addAll(runningJobs);
     }
     Collection<JobInProgress> waitingJobs = 
       jobQueuesManager.getWaitingJobQueue(queueName);

Modified: hadoop/core/branches/branch-0.19/src/contrib/capacity-scheduler/src/test/org/apache/hadoop/mapred/TestCapacityScheduler.java
URL: http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.19/src/contrib/capacity-scheduler/src/test/org/apache/hadoop/mapred/TestCapacityScheduler.java?rev=700256&r1=700255&r2=700256&view=diff
==============================================================================
--- hadoop/core/branches/branch-0.19/src/contrib/capacity-scheduler/src/test/org/apache/hadoop/mapred/TestCapacityScheduler.java (original)
+++ hadoop/core/branches/branch-0.19/src/contrib/capacity-scheduler/src/test/org/apache/hadoop/mapred/TestCapacityScheduler.java Mon Sep 29 14:02:32 2008
@@ -23,6 +23,7 @@
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.HashSet;
+import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
@@ -446,6 +447,36 @@
     t = checkAssignment("tt2", "attempt_test_0002_m_000001_0 on tt2");
   }
   
+  public void testGetJobs() throws Exception {
+    // need only one queue
+    String[] qs = { "default" };
+    taskTrackerManager.addQueues(qs);
+    resConf = new FakeResourceManagerConf();
+    ArrayList<FakeQueueInfo> queues = new ArrayList<FakeQueueInfo>();
+    queues.add(new FakeQueueInfo("default", 100.0f, 300, true, 100));
+    resConf.setFakeQueues(queues);
+    scheduler.setResourceManagerConf(resConf);
+    scheduler.start();
+    
+    // submit a job
+    JobInProgress j1 = submitJob(JobStatus.PREP, 10, 10, "default", "u1");
+    checkAssignment("tt1", "attempt_test_0001_m_000001_0 on tt1");
+    
+    // submit another job
+    JobInProgress j2 = submitJob(JobStatus.PREP, 10, 10, "default", "u1");
+    
+    Collection<JobInProgress> jobs = scheduler.getJobs("default");
+    assertEquals(2, jobs.size());
+    Iterator<JobInProgress> iter = jobs.iterator();
+    assertEquals(j1, iter.next());
+    assertEquals(j2, iter.next());
+    
+    assertEquals(1, scheduler.jobQueuesManager.
+                        getRunningJobQueue("default").size());
+    assertEquals(1, scheduler.jobQueuesManager.
+                        getWaitingJobQueue("default").size());
+  }
+  
   // test capacity transfer
   public void testCapacityTransfer() throws Exception {
     // set up some queues