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

Jason Lowe commented on MAPREDUCE-6618:
---------------------------------------

Sorry, I should have been more clear.  I don't think we need to initialize 
these various fields to null because that's what Java does automatically.   
(Doesn't hurt, just not sure it helps anything.)  Instead what I was asking was 
whether it would be prudent to set things to null as we close them.  For 
example, a code idiom like this template:
{code}
  if (x != null) {
    x.close();
    x = null;
  }
{code}
This helps guard against doing extra work in cases of a double-close or someone 
trying to continue using the object after it has been closed.  I'm simply used 
to seeing that sort of pattern, so when I saw the code checking for null before 
the close I wondered out loud whether we should be also setting the fields to 
null as part of that close processing.

> YarnClientProtocolProvider leaking the YarnClient thread. 
> ----------------------------------------------------------
>
>                 Key: MAPREDUCE-6618
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-6618
>             Project: Hadoop Map/Reduce
>          Issue Type: Bug
>            Reporter: Xuan Gong
>            Assignee: Xuan Gong
>         Attachments: MAPREDUCE-6618.1.patch, MAPREDUCE-6618.2.patch, 
> MAPREDUCE-6618.3.patch, MAPREDUCE-6618.4.patch
>
>
> YarnClientProtocolProvider creates YarnRunner which includes 
> ResourceMgrDelegate. In ResourceMgrDelegate, we would initiate and start 
> yarnclient. The yarnClient thread would be leaked due to
> {code}
>   @Override
>   public void close(ClientProtocol clientProtocol) throws IOException {
>     // nothing to do
>   }
> {code} in YarnClientProtocolProvider



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

Reply via email to