[ 
https://issues.apache.org/jira/browse/YARN-6519?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15982320#comment-15982320
 ] 

Weiwei Yang commented on YARN-6519:
-----------------------------------

Hi [~Naganarasimha]

Thanks for the review

bq. NodeType ln no 29, no need to change the access specifier of the constructor

Intellij gives a warning {{Modifier private is redundant for enum 
constructors}} if I keep the private modifier. This is because 
[http://docs.oracle.com/javase/specs/jls/se8/html/jls-8.html#jls-8.9.2] says 
{noformat}
In an enum declaration, a constructor declaration with no access modifiers is 
private.
{noformat}

bq. EMPTY_CONTAINER_LIST can be private

Sure, fixed.

bq. QueueMetrics ln no 151, i was of the opinion that we use naming convention 
of field as its not exactly a string constant, thoughts?

This is using name convention for {{final}} and {{static}} field, if not name 
it this way, we will get checkstyle warnings, similar names can be found a lot 
of places, such as

{noformat}
./hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/erasurecode/CodecUtil.java:98:
  public static final Map<String, String> DEFAULT_CODERS_MAP = ImmutableMap.of(
./hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/nativeio/NativeIO.java:465:
    private static final Map<Integer, CachedName> USER_ID_NAME_CACHE =
./hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/nativeio/NativeIO.java:468:
    private static final Map<Integer, CachedName> GROUP_ID_NAME_CACHE =
./hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/nativeio/NativeIO.java:702:
  private static final Map<Long, CachedUid> uidCache =
./hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/ObjectWritable.java:85:
  private static final Map<String, Class<?>> PRIMITIVE_NAMES = new 
HashMap<String, Class<?>>();
./hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/WritableFactories.java:33:
  private static final Map<Class, WritableFactory> CLASS_TO_FACTORY =
./hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/RPC.java:190:
  private static final Map<Class<?>,RpcEngine> PROTOCOL_ENGINES
{noformat}

4. is it possible for concurrent modification exception ?

Good catch! Thanks! Fixed with following

{code}
    preemptionCandidates.entrySet()
        .removeIf(candidate ->
            candidate.getValue() + 2 * maxWaitTime < currentTime);
{code}

5. FSSchedulerNode ln no 157-165, i presume for removal we better not use entry 
set,

Also a good catch, thanks. In order to fix the findbugs warning, we can still 
use entry set, just to iterate over this entry set 

{code}
Iterator<Map.Entry<FSAppAttempt, Resource>> iterator =
        resourcesPreemptedForApp.entrySet().iterator();
{code}

Thanks for all the comments! Appreciate your review.

> Fix warnings from Spotbugs in hadoop-yarn-server-resourcemanager
> ----------------------------------------------------------------
>
>                 Key: YARN-6519
>                 URL: https://issues.apache.org/jira/browse/YARN-6519
>             Project: Hadoop YARN
>          Issue Type: Bug
>          Components: resourcemanager
>            Reporter: Weiwei Yang
>            Assignee: Weiwei Yang
>              Labels: findbugs
>         Attachments: YARN-6519.001.patch
>
>
> There is 8 findbugs warning in hadoop-yarn-server-timelineservice since 
> switched to spotbugs
> # 
> org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacitySchedulerQueueManager$1.compare(CSQueue,
>  CSQueue) incorrectly handles float value
> # org.apache.hadoop.yarn.server.resourcemanager.scheduler.NodeType.index 
> field is public and mutable
> # 
> org.apache.hadoop.yarn.server.resourcemanager.ApplicationMasterService.EMPTY_CONTAINER_LIST
>  is a mutable collection which should be package protected
> # 
> org.apache.hadoop.yarn.server.resourcemanager.scheduler.AbstractYarnScheduler.EMPTY_CONTAINER_LIST
>  is a mutable collection which should be package protected
> # 
> org.apache.hadoop.yarn.server.resourcemanager.scheduler.QueueMetrics.queueMetrics
>  is a mutable collection
> # 
> org.apache.hadoop.yarn.server.resourcemanager.monitor.capacity.ProportionalCapacityPreemptionPolicy.cleanupStaledPreemptionCandidates(long)
>  makes inefficient use of keySet iterator instead of entrySet iterator
> # 
> org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttemptImpl.transferStateFromAttempt(RMAppAttempt)
>  makes inefficient use of keySet iterator instead of entrySet iterator
> # 
> org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FSSchedulerNode.cleanupPreemptionList()
>  makes inefficient use of keySet iterator instead of entrySet iterator
> See more from 
> [https://builds.apache.org/job/PreCommit-HADOOP-Build/12157/artifact/patchprocess/branch-findbugs-hadoop-yarn-project_hadoop-yarn_hadoop-yarn-server_hadoop-yarn-server-resourcemanager-warnings.html]



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to