You are viewing a plain text version of this content. The canonical link for it is here.
Posted to mapreduce-commits@hadoop.apache.org by yh...@apache.org on 2009/07/07 09:28:56 UTC

svn commit: r791731 - in /hadoop/mapreduce/trunk: CHANGES.txt src/java/org/apache/hadoop/mapred/JobTracker.java src/test/mapred/org/apache/hadoop/mapred/TestTaskTrackerBlacklisting.java

Author: yhemanth
Date: Tue Jul  7 07:28:56 2009
New Revision: 791731

URL: http://svn.apache.org/viewvc?rev=791731&view=rev
Log:
MAPREDUCE-708. Fixes a bug to allow updating the reason for blacklisting a node on the JobTracker UI. Contributed by Sreekanth Ramakrishnan.

Modified:
    hadoop/mapreduce/trunk/CHANGES.txt
    hadoop/mapreduce/trunk/src/java/org/apache/hadoop/mapred/JobTracker.java
    hadoop/mapreduce/trunk/src/test/mapred/org/apache/hadoop/mapred/TestTaskTrackerBlacklisting.java

Modified: hadoop/mapreduce/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/trunk/CHANGES.txt?rev=791731&r1=791730&r2=791731&view=diff
==============================================================================
--- hadoop/mapreduce/trunk/CHANGES.txt (original)
+++ hadoop/mapreduce/trunk/CHANGES.txt Tue Jul  7 07:28:56 2009
@@ -129,3 +129,7 @@
     The initialization of JobHistoryFilesManager is now done in the 
     JobHistory.init call. (Amar Kamat via ddas)
 
+    MAPREDUCE-708. Fixes a bug to allow updating the reason for
+    blacklisting a node on the JobTracker UI.
+    (Sreekanth Ramakrishnan via yhemanth)
+

Modified: hadoop/mapreduce/trunk/src/java/org/apache/hadoop/mapred/JobTracker.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/trunk/src/java/org/apache/hadoop/mapred/JobTracker.java?rev=791731&r1=791730&r2=791731&view=diff
==============================================================================
--- hadoop/mapreduce/trunk/src/java/org/apache/hadoop/mapred/JobTracker.java (original)
+++ hadoop/mapreduce/trunk/src/java/org/apache/hadoop/mapred/JobTracker.java Tue Jul  7 07:28:56 2009
@@ -609,14 +609,9 @@
       FaultInfo fi = getFaultInfo(hostName, true);
       boolean blackListed = fi.isBlacklisted();
       if(blackListed) {
-        if(fi.getReasonforblacklisting().contains(rfb)) {
-          return;
-        } else {
-          LOG.info("Adding blacklisted reason for tracker : " + hostName 
-              + " Reason for blacklisting is : " + rfb);
-          fi.addBlackListedReason(rfb, reason);
-        }
-        return;
+        LOG.info("Adding blacklisted reason for tracker : " + hostName 
+            + " Reason for blacklisting is : " + rfb);
+        fi.addBlackListedReason(rfb, reason);
       } else {
         LOG.info("Blacklisting tracker : " + hostName 
             + " Reason for blacklisting is : " + rfb);

Modified: hadoop/mapreduce/trunk/src/test/mapred/org/apache/hadoop/mapred/TestTaskTrackerBlacklisting.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/trunk/src/test/mapred/org/apache/hadoop/mapred/TestTaskTrackerBlacklisting.java?rev=791731&r1=791730&r2=791731&view=diff
==============================================================================
--- hadoop/mapreduce/trunk/src/test/mapred/org/apache/hadoop/mapred/TestTaskTrackerBlacklisting.java (original)
+++ hadoop/mapreduce/trunk/src/test/mapred/org/apache/hadoop/mapred/TestTaskTrackerBlacklisting.java Tue Jul  7 07:28:56 2009
@@ -239,6 +239,44 @@
     
     clock.jumpADay = false;
   }
+  
+  public void testBlacklistingReasonString() throws Exception {
+    String error = "ERROR";
+    String error1 = "ERROR1";
+    TaskTrackerHealthStatus status = new TaskTrackerHealthStatus();
+    status.setNodeHealthy(false);
+    status.setLastReported(System.currentTimeMillis());
+    status.setHealthReport(error);
+    sendHeartBeat(status, false);
+
+    assertEquals("All trackers not blacklisted", jobTracker
+        .getBlacklistedTrackerCount(), 3);
+
+    checkReasonForBlackListing(hosts[0], nodeUnHealthyReasonSet);
+    checkReasonForBlackListing(hosts[1], nodeUnHealthyReasonSet);
+    checkReasonForBlackListing(hosts[2], nodeUnHealthyReasonSet);
+    for (int i = 0; i < hosts.length; i++) {
+      //Replace new line as we are adding new line
+      //in getReasonsForBlacklisting
+      assertEquals("Blacklisting reason string not correct for host " + i,
+          jobTracker.getReasonsForBlacklisting(hosts[i]).replace("\n", ""),
+          error);
+    }
+    status.setNodeHealthy(false);
+    status.setLastReported(System.currentTimeMillis());
+    status.setHealthReport(error1);
+    sendHeartBeat(status, false);
+    checkReasonForBlackListing(hosts[0], nodeUnHealthyReasonSet);
+    checkReasonForBlackListing(hosts[1], nodeUnHealthyReasonSet);
+    checkReasonForBlackListing(hosts[2], nodeUnHealthyReasonSet);
+    for (int i = 0; i < hosts.length; i++) {
+      //Replace new line as we are adding new line
+      //in getReasonsForBlacklisting
+      assertEquals("Blacklisting reason string not correct for host " + i,
+          jobTracker.getReasonsForBlacklisting(hosts[i]).replace("\n", ""),
+          error1);
+    }
+  }
 
   private void runBlackListingJob() throws IOException, Exception {
     TaskAttemptID[] taskAttemptID = new TaskAttemptID[3];