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 ac...@apache.org on 2011/10/20 00:59:31 UTC
svn commit: r1186554 - in /hadoop/common/trunk/hadoop-mapreduce-project: ./
hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/event/
hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/service/
hadoop-yarn/hadoop-yarn-...
Author: acmurthy
Date: Wed Oct 19 22:59:30 2011
New Revision: 1186554
URL: http://svn.apache.org/viewvc?rev=1186554&view=rev
Log:
MAPREDUCE-3188. Ensure correct shutdown in services. Contributed by Todd Lipcon.
Modified:
hadoop/common/trunk/hadoop-mapreduce-project/CHANGES.txt
hadoop/common/trunk/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/event/AsyncDispatcher.java
hadoop/common/trunk/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/service/AbstractService.java
hadoop/common/trunk/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/AbstractLivelinessMonitor.java
Modified: hadoop/common/trunk/hadoop-mapreduce-project/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-mapreduce-project/CHANGES.txt?rev=1186554&r1=1186553&r2=1186554&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-mapreduce-project/CHANGES.txt (original)
+++ hadoop/common/trunk/hadoop-mapreduce-project/CHANGES.txt Wed Oct 19 22:59:30 2011
@@ -1706,6 +1706,8 @@ Release 0.23.0 - Unreleased
MAPREDUCE-3179. Ensure failed tests exit with right error code. (Jonathan
Eagles via acmurthy)
+ MAPREDUCE-3188. Ensure correct shutdown in services. (todd via acmurthy)
+
Release 0.22.0 - Unreleased
INCOMPATIBLE CHANGES
Modified: hadoop/common/trunk/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/event/AsyncDispatcher.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/event/AsyncDispatcher.java?rev=1186554&r1=1186553&r2=1186554&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/event/AsyncDispatcher.java (original)
+++ hadoop/common/trunk/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/event/AsyncDispatcher.java Wed Oct 19 22:59:30 2011
@@ -91,14 +91,16 @@ public class AsyncDispatcher extends Abs
@Override
public void stop() {
stopped = true;
- eventHandlingThread.interrupt();
- try {
- eventHandlingThread.join();
- } catch (InterruptedException ie) {
- LOG.debug("Interruped Exception while stopping", ie);
+ if (eventHandlingThread != null) {
+ eventHandlingThread.interrupt();
+ try {
+ eventHandlingThread.join();
+ } catch (InterruptedException ie) {
+ LOG.debug("Interrupted Exception while stopping", ie);
+ }
}
- //stop all the components
+ // stop all the components
super.stop();
}
Modified: hadoop/common/trunk/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/service/AbstractService.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/service/AbstractService.java?rev=1186554&r1=1186553&r2=1186554&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/service/AbstractService.java (original)
+++ hadoop/common/trunk/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/service/AbstractService.java Wed Oct 19 22:59:30 2011
@@ -63,8 +63,12 @@ public abstract class AbstractService im
@Override
public synchronized void stop() {
- if (state == STATE.STOPPED) {
- return;//already stopped
+ if (state == STATE.STOPPED ||
+ state == STATE.INITED ||
+ state == STATE.NOTINITED) {
+ // already stopped, or else it was never
+ // started (eg another service failing canceled startup)
+ return;
}
ensureCurrentState(STATE.STARTED);
changeState(STATE.STOPPED);
Modified: hadoop/common/trunk/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/AbstractLivelinessMonitor.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/AbstractLivelinessMonitor.java?rev=1186554&r1=1186553&r2=1186554&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/AbstractLivelinessMonitor.java (original)
+++ hadoop/common/trunk/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/AbstractLivelinessMonitor.java Wed Oct 19 22:59:30 2011
@@ -50,6 +50,7 @@ public abstract class AbstractLiveliness
@Override
public void start() {
+ assert !stopped : "starting when already stopped";
checkerThread = new Thread(new PingChecker());
checkerThread.setName("Ping Checker");
checkerThread.start();
@@ -59,7 +60,9 @@ public abstract class AbstractLiveliness
@Override
public void stop() {
stopped = true;
- checkerThread.interrupt();
+ if (checkerThread != null) {
+ checkerThread.interrupt();
+ }
super.stop();
}