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 ac...@apache.org on 2007/09/12 13:20:14 UTC
svn commit: r574888 - in /lucene/hadoop/trunk: CHANGES.txt
src/java/org/apache/hadoop/mapred/TaskStatus.java
Author: acmurthy
Date: Wed Sep 12 04:20:13 2007
New Revision: 574888
URL: http://svn.apache.org/viewvc?rev=574888&view=rev
Log:
HADOOP-1840. Fix race condition which leads to task's diagnostic messages getting lost.
Modified:
lucene/hadoop/trunk/CHANGES.txt
lucene/hadoop/trunk/src/java/org/apache/hadoop/mapred/TaskStatus.java
Modified: lucene/hadoop/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/CHANGES.txt?rev=574888&r1=574887&r2=574888&view=diff
==============================================================================
--- lucene/hadoop/trunk/CHANGES.txt (original)
+++ lucene/hadoop/trunk/CHANGES.txt Wed Sep 12 04:20:13 2007
@@ -118,6 +118,9 @@
HADOOP-1818. Fix MultiFileInputFormat so that it does not return
empty splits when numPaths < numSplits. (Thomas Friol via enis)
+ HADOOP-1840. Fix race condition which leads to task's diagnostic
+ messages getting lost. (acmurthy)
+
IMPROVEMENTS
HADOOP-1266. Remove dependency of package org.apache.hadoop.net on
Modified: lucene/hadoop/trunk/src/java/org/apache/hadoop/mapred/TaskStatus.java
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/java/org/apache/hadoop/mapred/TaskStatus.java?rev=574888&r1=574887&r2=574888&view=diff
==============================================================================
--- lucene/hadoop/trunk/src/java/org/apache/hadoop/mapred/TaskStatus.java (original)
+++ lucene/hadoop/trunk/src/java/org/apache/hadoop/mapred/TaskStatus.java Wed Sep 12 04:20:13 2007
@@ -80,7 +80,10 @@
public void setTaskTracker(String tracker) { this.taskTracker = tracker;}
public void setRunState(State runState) { this.runState = runState; }
public String getDiagnosticInfo() { return diagnosticInfo; }
- public void setDiagnosticInfo(String info) { this.diagnosticInfo = info; }
+ public void setDiagnosticInfo(String info) {
+ diagnosticInfo =
+ ((diagnosticInfo == null) ? info : diagnosticInfo.concat(info));
+ }
public String getStateString() { return stateString; }
public void setStateString(String stateString) { this.stateString = stateString; }
/**
@@ -231,9 +234,10 @@
synchronized void statusUpdate(TaskStatus status) {
this.progress = status.getProgress();
this.runState = status.getRunState();
- this.diagnosticInfo = status.getDiagnosticInfo();
this.stateString = status.getStateString();
-
+
+ setDiagnosticInfo(status.getDiagnosticInfo());
+
if (status.getStartTime() != 0) {
this.startTime = status.getStartTime();
}
@@ -246,10 +250,14 @@
}
/**
- * Clear out transient information after sending out a status update
- * to the {@link TaskTracker}.
- */
- synchronized void clearStatus() {}
+ * Clear out transient information after sending out a status-update
+ * from either the {@link Task} to the {@link TaskTracker} or from the
+ * {@link TaskTracker} to the {@link JobTracker}.
+ */
+ synchronized void clearStatus() {
+ // Clear diagnosticInfo
+ diagnosticInfo = "";
+ }
public Object clone() {
try {