YARN-5921. Incorrect synchronization in RMContextImpl#setHAServiceState/getHAServiceState. Contributed by Varun Saxena
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/f3b8ff54 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/f3b8ff54 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/f3b8ff54 Branch: refs/heads/YARN-5085 Commit: f3b8ff54ab08545d7093bf8861b44ec9912e8dc3 Parents: dcedb72 Author: Naganarasimha <naganarasimha...@apache.org> Authored: Tue Dec 6 06:53:38 2016 +0530 Committer: Naganarasimha <naganarasimha...@apache.org> Committed: Tue Dec 6 06:53:38 2016 +0530 ---------------------------------------------------------------------- .../hadoop/yarn/server/resourcemanager/RMContextImpl.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/f3b8ff54/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/RMContextImpl.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/RMContextImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/RMContextImpl.java index dc8f7d1..3f17ac6 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/RMContextImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/RMContextImpl.java @@ -80,6 +80,8 @@ public class RMContextImpl implements RMContext { private QueueLimitCalculator queueLimitCalculator; + private final Object haServiceStateLock = new Object(); + /** * Default constructor. To be used in conjunction with setter methods for * individual fields. @@ -254,9 +256,9 @@ public class RMContextImpl implements RMContext { this.isHAEnabled = isHAEnabled; } - void setHAServiceState(HAServiceState haServiceState) { - synchronized (haServiceState) { - this.haServiceState = haServiceState; + void setHAServiceState(HAServiceState serviceState) { + synchronized (haServiceStateLock) { + this.haServiceState = serviceState; } } @@ -352,7 +354,7 @@ public class RMContextImpl implements RMContext { @Override public HAServiceState getHAServiceState() { - synchronized (haServiceState) { + synchronized (haServiceStateLock) { return haServiceState; } } --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org