Tsuyoshi OZAWA commented on YARN-3081:

[~ted_yu], Thanks for the reporting. I checked the code path. Current code 
looks correct. If the tryCloseProxy() succeeds, the sleeping threads will be 
waken up and try to register the proxy instance as cache entry. If wait() have 
the timeout value, the sleeping threads are waken up before cmProxy.size() is 
updated. It looks consumption of CPU resource since there are no change between 
before and after the sleep. What do you think? Please let me know if I have 
some missing points.

> Potential indefinite wait in 
> ContainerManagementProtocolProxy#addProxyToCache()
> -------------------------------------------------------------------------------
>                 Key: YARN-3081
>                 URL: https://issues.apache.org/jira/browse/YARN-3081
>             Project: Hadoop YARN
>          Issue Type: Bug
>            Reporter: Ted Yu
>            Assignee: Ted Yu
>            Priority: Minor
>         Attachments: yarn-3081-001.patch
> {code}
>       if (!removedProxy) {
>         // all of the proxies are currently in use and already scheduled
>         // for removal, so we need to wait until at least one of them closes
>         try {
>           this.wait();
> {code}
> The above code can wait for a condition that has already been satisfied, 
> leading to indefinite wait.

This message was sent by Atlassian JIRA

Reply via email to