فهرست منبع

YARN-3181. FairScheduler: Fix up outdated findbugs issues. (kasha)

Karthik Kambatla 10 سال پیش
والد
کامیت
c2b185def8

+ 2 - 0
hadoop-yarn-project/CHANGES.txt

@@ -277,6 +277,8 @@ Release 2.7.0 - UNRELEASED
     YARN-2079. Recover NonAggregatingLogHandler state upon nodemanager
     restart. (Jason Lowe via junping_du) 
 
+    YARN-3181. FairScheduler: Fix up outdated findbugs issues. (kasha)
+
   OPTIMIZATIONS
 
     YARN-2990. FairScheduler's delay-scheduling always waits for node-local and 

+ 0 - 27
hadoop-yarn-project/hadoop-yarn/dev-support/findbugs-exclude.xml

@@ -142,22 +142,12 @@
     <Class name="org.apache.hadoop.yarn.server.nodemanager.containermanager.logaggregation.LogAggregationService" />
     <Bug pattern="IS2_INCONSISTENT_SYNC" />
   </Match>
-  <Match>
-    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.AllocationFileLoaderService" />
-    <Field name="allocFile" />
-    <Bug pattern="IS2_INCONSISTENT_SYNC" />
-  </Match>
   <!-- Inconsistent sync warning - minimumAllocation is only initialized once and never changed -->
   <Match>
     <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.AbstractYarnScheduler" />
     <Field name="minimumAllocation" />
     <Bug pattern="IS2_INCONSISTENT_SYNC" />
   </Match>
-  <Match>
-    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FSSchedulerNode" />
-    <Method name="reserveResource" />
-    <Bug pattern="BC_UNCONFIRMED_CAST" /> 
-  </Match>
   <!-- Inconsistent sync warning - reinitialize read from other queue does not need sync-->
   <Match>
     <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.LeafQueue" />
@@ -213,18 +203,6 @@
     <Field name="scheduleAsynchronously" />
     <Bug pattern="IS2_INCONSISTENT_SYNC" />
   </Match>
-  <!-- Inconsistent sync warning - updateInterval is only initialized once and never changed -->
-  <Match>
-    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler" />
-    <Field name="updateInterval" />
-    <Bug pattern="IS2_INCONSISTENT_SYNC" />
-  </Match>
-  <!-- Inconsistent sync warning - callDurationMetrics is only initialized once and never changed -->
-  <Match>
-    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler" />
-    <Field name="fsOpDurations" />
-    <Bug pattern="IS2_INCONSISTENT_SYNC" />
-  </Match>
 
   <!-- Inconsistent sync warning - numRetries is only initialized once and never changed -->
   <Match>
@@ -424,11 +402,6 @@
     <Field name="queue" />
     <Bug pattern="IS2_INCONSISTENT_SYNC" />
   </Match>
-  <Match>
-    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler" />
-    <Field name="allocConf" />
-    <Bug pattern="IS2_INCONSISTENT_SYNC" />
-  </Match>
   <Match>
     <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerNode" />
     <Field name="numContainers" />

+ 10 - 3
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/AllocationConfiguration.java

@@ -33,6 +33,9 @@ import org.apache.hadoop.yarn.util.resource.Resources;
 
 import com.google.common.annotations.VisibleForTesting;
 
+import javax.annotation.concurrent.ThreadSafe;
+
+@ThreadSafe
 public class AllocationConfiguration extends ReservationSchedulerConfiguration {
   private static final AccessControlList EVERYBODY_ACL = new AccessControlList("*");
   private static final AccessControlList NOBODY_ACL = new AccessControlList(" ");
@@ -204,12 +207,16 @@ public class AllocationConfiguration extends ReservationSchedulerConfiguration {
   }
 
   public ResourceWeights getQueueWeight(String queue) {
-    ResourceWeights weight = queueWeights.get(queue);
-    return (weight == null) ? ResourceWeights.NEUTRAL : weight;
+    synchronized (queueWeights) {
+      ResourceWeights weight = queueWeights.get(queue);
+      return (weight == null) ? ResourceWeights.NEUTRAL : weight;
+    }
   }
 
   public void setQueueWeight(String queue, ResourceWeights weight) {
-    queueWeights.put(queue, weight);
+    synchronized (queueWeights) {
+      queueWeights.put(queue, weight);
+    }
   }
   
   public int getUserMaxApps(String user) {

+ 1 - 1
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/AllocationFileLoaderService.java

@@ -201,7 +201,7 @@ public class AllocationFileLoaderService extends AbstractService {
    * @throws ParserConfigurationException if XML parser is misconfigured.
    * @throws SAXException if config file is malformed.
    */
-  public synchronized void reloadAllocations() throws IOException,
+  public void reloadAllocations() throws IOException,
       ParserConfigurationException, SAXException, AllocationConfigurationException {
     if (allocFile == null) {
       return;

+ 3 - 0
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/FSOpDurations.java

@@ -31,6 +31,8 @@ import org.apache.hadoop.metrics2.lib.MetricsRegistry;
 import static org.apache.hadoop.metrics2.lib.Interns.info;
 import org.apache.hadoop.metrics2.lib.MutableRate;
 
+import javax.annotation.concurrent.ThreadSafe;
+
 /**
  * Class to capture the performance metrics of FairScheduler.
  * This should be a singleton.
@@ -38,6 +40,7 @@ import org.apache.hadoop.metrics2.lib.MutableRate;
 @InterfaceAudience.Private
 @InterfaceStability.Unstable
 @Metrics(context="fairscheduler-op-durations")
+@ThreadSafe
 public class FSOpDurations implements MetricsSource {
 
   @Metric("Duration for a continuous scheduling run")