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 vi...@apache.org on 2011/12/22 00:49:39 UTC
svn commit: r1221951 - in
/hadoop/common/branches/branch-0.23/hadoop-mapreduce-project: ./
hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/service/
hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/
Author: vinodkv
Date: Wed Dec 21 23:49:39 2011
New Revision: 1221951
URL: http://svn.apache.org/viewvc?rev=1221951&view=rev
Log:
MAPREDUCE-3586. Modified CompositeService to avoid duplicate stop operations thereby solving race conditions in MR AM shutdown. (vinodkv)
svn merge -c 1221950 --ignore-ancestry ../../trunk/
Modified:
hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/CHANGES.txt
hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/service/CompositeService.java
hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/TestCompositeService.java
Modified: hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/CHANGES.txt?rev=1221951&r1=1221950&r2=1221951&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/CHANGES.txt (original)
+++ hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/CHANGES.txt Wed Dec 21 23:49:39 2011
@@ -303,6 +303,10 @@ Release 0.23.1 - Unreleased
MAPREDUCE-3349. Log rack-name in JobHistory for unsuccessful tasks. (Amar
Kamat and Devaraj K via sseth)
+ MAPREDUCE-3586. Modified CompositeService to avoid duplicate stop operations
+ thereby solving race conditions in MR AM shutdown. (vinodkv)
+
+>>>>>>> .merge-right.r1221950
Release 0.23.0 - 2011-11-01
INCOMPATIBLE CHANGES
Modified: hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/service/CompositeService.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/service/CompositeService.java?rev=1221951&r1=1221950&r2=1221951&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/service/CompositeService.java (original)
+++ hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/service/CompositeService.java Wed Dec 21 23:49:39 2011
@@ -81,6 +81,10 @@ public class CompositeService extends Ab
}
public synchronized void stop() {
+ if (this.getServiceState() == STATE.STOPPED) {
+ // The base composite-service is already stopped, don't do anything again.
+ return;
+ }
if (serviceList.size() > 0) {
stop(serviceList.size() - 1);
}
Modified: hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/TestCompositeService.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/TestCompositeService.java?rev=1221951&r1=1221950&r2=1221951&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/TestCompositeService.java (original)
+++ hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/TestCompositeService.java Wed Dec 21 23:49:39 2011
@@ -88,6 +88,14 @@ public class TestCompositeService {
((NUM_OF_SERVICES - 1) - i), services[i].getCallSequenceNumber());
}
+ // Try to stop again. This should be a no-op.
+ serviceManager.stop();
+ // Verify that stop() call sequence numbers for every service don't change.
+ for (int i = 0; i < NUM_OF_SERVICES; i++) {
+ assertEquals("For " + services[i]
+ + " service, stop() call sequence number should have been ",
+ ((NUM_OF_SERVICES - 1) - i), services[i].getCallSequenceNumber());
+ }
}
@Test
@@ -153,7 +161,7 @@ public class TestCompositeService {
serviceManager.start();
- // Start the composite service
+ // Stop the composite service
try {
serviceManager.stop();
} catch (YarnException e) {