You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hama.apache.org by ed...@apache.org on 2012/02/05 09:47:25 UTC
svn commit: r1240683 - in /incubator/hama: branches/0.4/
branches/0.4/core/src/main/java/org/apache/hama/bsp/
branches/0.4/src/site/xdoc/ trunk/
trunk/core/src/main/java/org/apache/hama/bsp/ trunk/src/site/xdoc/
Author: edwardyoon
Date: Sun Feb 5 08:47:24 2012
New Revision: 1240683
URL: http://svn.apache.org/viewvc?rev=1240683&view=rev
Log:
Fix error reading child output
Modified:
incubator/hama/branches/0.4/CHANGES.txt
incubator/hama/branches/0.4/core/src/main/java/org/apache/hama/bsp/TaskRunner.java
incubator/hama/branches/0.4/src/site/xdoc/index.xml
incubator/hama/trunk/CHANGES.txt
incubator/hama/trunk/core/src/main/java/org/apache/hama/bsp/TaskRunner.java
incubator/hama/trunk/src/site/xdoc/index.xml
Modified: incubator/hama/branches/0.4/CHANGES.txt
URL: http://svn.apache.org/viewvc/incubator/hama/branches/0.4/CHANGES.txt?rev=1240683&r1=1240682&r2=1240683&view=diff
==============================================================================
--- incubator/hama/branches/0.4/CHANGES.txt (original)
+++ incubator/hama/branches/0.4/CHANGES.txt Sun Feb 5 08:47:24 2012
@@ -1,6 +1,6 @@
Hama Change Log
-Release 0.4 - Unreleased
+Release 0.4 - February 5, 2012
NEW FEATURES
@@ -19,6 +19,7 @@ Release 0.4 - Unreleased
BUG FIXES
+ HAMA-506: Error reading child output (edwardyoon)
HAMA-488: PageRank refactor and fix bugs (tjungblut via edwardyoon)
HAMA-489: Check port availability before forking child process (edwardyoon)
HAMA-474: ClusterStatus.getTasks() always returns 0 (edwardyoon)
Modified: incubator/hama/branches/0.4/core/src/main/java/org/apache/hama/bsp/TaskRunner.java
URL: http://svn.apache.org/viewvc/incubator/hama/branches/0.4/core/src/main/java/org/apache/hama/bsp/TaskRunner.java?rev=1240683&r1=1240682&r2=1240683&view=diff
==============================================================================
--- incubator/hama/branches/0.4/core/src/main/java/org/apache/hama/bsp/TaskRunner.java (original)
+++ incubator/hama/branches/0.4/core/src/main/java/org/apache/hama/bsp/TaskRunner.java Sun Feb 5 08:47:24 2012
@@ -55,6 +55,8 @@ public class TaskRunner extends Thread {
boolean bspKilled = false;
private Process bspProcess;
+ private Thread errorLog;
+ private Thread infoLog;
private final Task task;
private final BSPJob conf;
@@ -95,17 +97,20 @@ public class TaskRunner extends Thread {
builder.directory(workDir);
try {
bspProcess = builder.start();
- new Thread() {
+
+ errorLog = new Thread() {
public void run() {
logStream(bspProcess.getErrorStream(), LogType.ERROR);
}
- }.start();
+ };
+ errorLog.start();
- new Thread() {
+ infoLog = new Thread() {
public void run() {
logStream(bspProcess.getInputStream(), LogType.STDOUT);
}
- }.start();
+ };
+ infoLog.start();
int exit_code = bspProcess.waitFor();
if (!bspKilled && exit_code != 0) {
@@ -113,8 +118,7 @@ public class TaskRunner extends Thread {
+ exit_code + ".");
}
} catch (InterruptedException e) {
- LOG.warn("Thread is interrupted when execeuting BSP process.",
- e);
+ LOG.warn("Thread is interrupted when execeuting BSP process.", e);
} catch (IOException ioe) {
LOG.error("Error when executing BSPPeer process.", ioe);
} finally {
@@ -203,7 +207,7 @@ public class TaskRunner extends Thread {
vargs.add(classPath.toString());
// Add main class and its arguments
LOG.debug("Executing child Process " + child.getName());
- vargs.add(child.getName()); // bsp class name
+ vargs.add(child.getName()); // bsp class name
if (GroomServer.BSPPeerChild.class.equals(child)) {
InetSocketAddress addr = groomServer.getTaskTrackerReportAddress();
@@ -234,6 +238,8 @@ public class TaskRunner extends Thread {
LOG.error("BSPPeer child process is interrupted.", ie);
} catch (ExecutionException ee) {
LOG.error("Failure occurs when retrieving tasks result.", ee);
+ } finally {
+ killBsp();
}
LOG.debug("Finishes executing BSPPeer child process.");
}
@@ -257,13 +263,19 @@ public class TaskRunner extends Thread {
}
/**
- * Kill bsppeer child process.
+ * Kill bspPeer child process.
*/
public void killBsp() {
+ bspKilled = true;
+
+ if (errorLog != null || infoLog != null) {
+ errorLog = null;
+ infoLog = null;
+ }
+
if (bspProcess != null) {
bspProcess.destroy();
}
- bspKilled = true;
}
/**
@@ -287,7 +299,9 @@ public class TaskRunner extends Thread {
writer.newLine();
}
} catch (IOException e) {
- LOG.warn(task.getTaskID() + " Error reading child output", e);
+ if (!bspKilled) {
+ LOG.warn(task.getTaskID() + " Error reading child output", e);
+ }
} finally {
try {
input.close();
Modified: incubator/hama/branches/0.4/src/site/xdoc/index.xml
URL: http://svn.apache.org/viewvc/incubator/hama/branches/0.4/src/site/xdoc/index.xml?rev=1240683&r1=1240682&r2=1240683&view=diff
==============================================================================
--- incubator/hama/branches/0.4/src/site/xdoc/index.xml (original)
+++ incubator/hama/branches/0.4/src/site/xdoc/index.xml Sun Feb 5 08:47:24 2012
@@ -41,7 +41,7 @@ xsi:schemaLocation="http://maven.apache.
<tr><td>
<h3 align="center">Recent News</h3>
<ul>
- <li>Jan 30, 2012: release 0.4.0 available</li>
+ <li>Feb 5, 2012: release 0.4.0 available</li>
<li>July 28, 2011: release 0.3.0 available</li>
<li>June 2, 2011: release 0.2.0 available</li>
<li>Apr 30, 2010: Introduced in the <a href="http://www.bsp-worldwide.org/bspww3000.html">BSP Worldwide</a></li>
Modified: incubator/hama/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/incubator/hama/trunk/CHANGES.txt?rev=1240683&r1=1240682&r2=1240683&view=diff
==============================================================================
--- incubator/hama/trunk/CHANGES.txt (original)
+++ incubator/hama/trunk/CHANGES.txt Sun Feb 5 08:47:24 2012
@@ -1,6 +1,6 @@
Hama Change Log
-Release 0.4 - Unreleased
+Release 0.4 - February 5, 2012
NEW FEATURES
@@ -19,6 +19,7 @@ Release 0.4 - Unreleased
BUG FIXES
+ HAMA-506: Error reading child output (edwardyoon)
HAMA-488: PageRank refactor and fix bugs (tjungblut via edwardyoon)
HAMA-489: Check port availability before forking child process (edwardyoon)
HAMA-474: ClusterStatus.getTasks() always returns 0 (edwardyoon)
Modified: incubator/hama/trunk/core/src/main/java/org/apache/hama/bsp/TaskRunner.java
URL: http://svn.apache.org/viewvc/incubator/hama/trunk/core/src/main/java/org/apache/hama/bsp/TaskRunner.java?rev=1240683&r1=1240682&r2=1240683&view=diff
==============================================================================
--- incubator/hama/trunk/core/src/main/java/org/apache/hama/bsp/TaskRunner.java (original)
+++ incubator/hama/trunk/core/src/main/java/org/apache/hama/bsp/TaskRunner.java Sun Feb 5 08:47:24 2012
@@ -55,6 +55,8 @@ public class TaskRunner extends Thread {
boolean bspKilled = false;
private Process bspProcess;
+ private Thread errorLog;
+ private Thread infoLog;
private final Task task;
private final BSPJob conf;
@@ -95,17 +97,20 @@ public class TaskRunner extends Thread {
builder.directory(workDir);
try {
bspProcess = builder.start();
- new Thread() {
+
+ errorLog = new Thread() {
public void run() {
logStream(bspProcess.getErrorStream(), LogType.ERROR);
}
- }.start();
+ };
+ errorLog.start();
- new Thread() {
+ infoLog = new Thread() {
public void run() {
logStream(bspProcess.getInputStream(), LogType.STDOUT);
}
- }.start();
+ };
+ infoLog.start();
int exit_code = bspProcess.waitFor();
if (!bspKilled && exit_code != 0) {
@@ -113,8 +118,7 @@ public class TaskRunner extends Thread {
+ exit_code + ".");
}
} catch (InterruptedException e) {
- LOG.warn("Thread is interrupted when execeuting BSP process.",
- e);
+ LOG.warn("Thread is interrupted when execeuting BSP process.", e);
} catch (IOException ioe) {
LOG.error("Error when executing BSPPeer process.", ioe);
} finally {
@@ -203,7 +207,7 @@ public class TaskRunner extends Thread {
vargs.add(classPath.toString());
// Add main class and its arguments
LOG.debug("Executing child Process " + child.getName());
- vargs.add(child.getName()); // bsp class name
+ vargs.add(child.getName()); // bsp class name
if (GroomServer.BSPPeerChild.class.equals(child)) {
InetSocketAddress addr = groomServer.getTaskTrackerReportAddress();
@@ -234,6 +238,8 @@ public class TaskRunner extends Thread {
LOG.error("BSPPeer child process is interrupted.", ie);
} catch (ExecutionException ee) {
LOG.error("Failure occurs when retrieving tasks result.", ee);
+ } finally {
+ killBsp();
}
LOG.debug("Finishes executing BSPPeer child process.");
}
@@ -257,13 +263,19 @@ public class TaskRunner extends Thread {
}
/**
- * Kill bsppeer child process.
+ * Kill bspPeer child process.
*/
public void killBsp() {
+ bspKilled = true;
+
+ if (errorLog != null || infoLog != null) {
+ errorLog = null;
+ infoLog = null;
+ }
+
if (bspProcess != null) {
bspProcess.destroy();
}
- bspKilled = true;
}
/**
@@ -287,7 +299,9 @@ public class TaskRunner extends Thread {
writer.newLine();
}
} catch (IOException e) {
- LOG.warn(task.getTaskID() + " Error reading child output", e);
+ if (!bspKilled) {
+ LOG.warn(task.getTaskID() + " Error reading child output", e);
+ }
} finally {
try {
input.close();
Modified: incubator/hama/trunk/src/site/xdoc/index.xml
URL: http://svn.apache.org/viewvc/incubator/hama/trunk/src/site/xdoc/index.xml?rev=1240683&r1=1240682&r2=1240683&view=diff
==============================================================================
--- incubator/hama/trunk/src/site/xdoc/index.xml (original)
+++ incubator/hama/trunk/src/site/xdoc/index.xml Sun Feb 5 08:47:24 2012
@@ -41,7 +41,7 @@ xsi:schemaLocation="http://maven.apache.
<tr><td>
<h3 align="center">Recent News</h3>
<ul>
- <li>Jan 30, 2012: release 0.4.0 available</li>
+ <li>Feb 5, 2012: release 0.4.0 available</li>
<li>July 28, 2011: release 0.3.0 available</li>
<li>June 2, 2011: release 0.2.0 available</li>
<li>Apr 30, 2010: Introduced in the <a href="http://www.bsp-worldwide.org/bspww3000.html">BSP Worldwide</a></li>