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 dd...@apache.org on 2009/03/16 09:46:53 UTC
svn commit: r754847 - in /hadoop/core/trunk: CHANGES.txt
src/mapred/org/apache/hadoop/mapred/EagerTaskInitializationListener.java
Author: ddas
Date: Mon Mar 16 08:46:53 2009
New Revision: 754847
URL: http://svn.apache.org/viewvc?rev=754847&view=rev
Log:
HADOOP-5490. Fixes a synchronization problem in the EagerTaskInitializationListener class. Contributed by Jothi Padmanabhan.
Modified:
hadoop/core/trunk/CHANGES.txt
hadoop/core/trunk/src/mapred/org/apache/hadoop/mapred/EagerTaskInitializationListener.java
Modified: hadoop/core/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/CHANGES.txt?rev=754847&r1=754846&r2=754847&view=diff
==============================================================================
--- hadoop/core/trunk/CHANGES.txt (original)
+++ hadoop/core/trunk/CHANGES.txt Mon Mar 16 08:46:53 2009
@@ -998,6 +998,9 @@
HADOOP-5278. Fixes a problem to do with logging the finish time of a task during
recovery (after a JobTracker restart). (Amar Kamat via ddas)
+ HADOOP-5490. Fixes a synchronization problem in the EagerTaskInitializationListener
+ class. (Jothi Padmanabhan via ddas)
+
Release 0.19.2 - Unreleased
BUG FIXES
Modified: hadoop/core/trunk/src/mapred/org/apache/hadoop/mapred/EagerTaskInitializationListener.java
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/src/mapred/org/apache/hadoop/mapred/EagerTaskInitializationListener.java?rev=754847&r1=754846&r2=754847&view=diff
==============================================================================
--- hadoop/core/trunk/src/mapred/org/apache/hadoop/mapred/EagerTaskInitializationListener.java (original)
+++ hadoop/core/trunk/src/mapred/org/apache/hadoop/mapred/EagerTaskInitializationListener.java Mon Mar 16 08:46:53 2009
@@ -51,14 +51,11 @@
while (true) {
try {
synchronized (jobInitQueue) {
- while (jobInitQueue.isEmpty() && !exitFlag) {
+ while (jobInitQueue.isEmpty()) {
jobInitQueue.wait();
}
- if (exitFlag) {
- break;
- }
+ job = jobInitQueue.remove(0);
}
- job = jobInitQueue.remove(0);
threadPool.execute(new InitJob(job));
} catch (InterruptedException t) {
LOG.info("JobInitManagerThread interrupted.");
@@ -97,7 +94,6 @@
private List<JobInProgress> jobInitQueue = new ArrayList<JobInProgress>();
private ExecutorService threadPool;
private int numThreads;
- private boolean exitFlag = false;
public EagerTaskInitializationListener(Configuration conf) {
numThreads = conf.getInt("mapred.jobinit.threads", DEFAULT_NUM_THREADS);
@@ -113,10 +109,7 @@
public void terminate() throws IOException {
if (jobInitManagerThread != null && jobInitManagerThread.isAlive()) {
LOG.info("Stopping Job Init Manager thread");
- synchronized (jobInitQueue) {
- exitFlag = true;
- jobInitQueue.notify();
- }
+ jobInitManagerThread.interrupt();
try {
jobInitManagerThread.join();
} catch (InterruptedException ex) {