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

chunhui shen commented on HBASE-7369:
-------------------------------------

Once closed is set true, we won't reuse the HConnection again now.
Therefore, like 
HConnectionImplementation#locateRegion,HConnectionImplementation#createMasterWithRetries,
 will throw exception directly because closed=true.

[~bbaugher]
what about calling close() instead of
{code}if (managed) HConnectionManager.deleteStaleConnection(this);{code}

and change a little in close()
{code}
@Override
    public void close() {
      if (managed) {
        if(abortRequested){
            HConnectionManager.deleteStaleConnection(this);
         }
       else{
         HConnectionManager.deleteConnection(this, stopProxy, false);

         }
              } else {
        close(true);
      }
    }
{code}



By the way, there's another problem. Although a stale connecion is removed,  
the existed HTable whose hconnection refers to this stale connection couldn't 
work any more until we restart the client or application handle this case. I 
think it's better reset the hconnection in HTable if it is already closed. e.g. 
check whether connection is closed when using connection in HTable 


                
> HConnectionManager should remove aborted connections
> ----------------------------------------------------
>
>                 Key: HBASE-7369
>                 URL: https://issues.apache.org/jira/browse/HBASE-7369
>             Project: HBase
>          Issue Type: Improvement
>          Components: Client
>    Affects Versions: 0.94.3
>            Reporter: Bryan Baugher
>            Priority: Minor
>         Attachments: patch2.diff, patch3.diff, patch.diff
>
>
> When an HConnection is abort()'ed (i.e. if numerous services are lost) the 
> connection becomes unusable. HConnectionManager cache of HConnections 
> currently does not have any logic around removing aborted connections 
> automatically. Currently it is up to the consumer to do so using 
> HConnectionManager.deleteStaleConnection(HConnection).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to