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

Tsuyoshi OZAWA commented on YARN-2914:
--------------------------------------

[~varun_saxena], Thanks for your contribution. I think we need to init the 
singleton object with configuration. On the other hand, getInstance() doesn't 
take configuration as an argument. This semantic gap prevents us from calling 
initSingleton inside getInstance.

Comments:
* We should also take a lock of Singleton.INSTANCE in the method initSingleton.

> Potential race condition in ClientSCMMetrics#getInstance()
> ----------------------------------------------------------
>
>                 Key: YARN-2914
>                 URL: https://issues.apache.org/jira/browse/YARN-2914
>             Project: Hadoop YARN
>          Issue Type: Bug
>    Affects Versions: 2.6.0
>            Reporter: Ted Yu
>            Assignee: Varun Saxena
>            Priority: Minor
>             Fix For: 2.7.0
>
>         Attachments: YARN-2914.patch
>
>
> {code}
>   public static ClientSCMMetrics getInstance() {
>     ClientSCMMetrics topMetrics = Singleton.INSTANCE.impl;
>     if (topMetrics == null) {
>       throw new IllegalStateException(
> {code}
> getInstance() doesn't hold lock on Singleton.this
> This may result in IllegalStateException being thrown prematurely.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to