You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Gary Helmling (JIRA)" <ji...@apache.org> on 2016/05/18 21:55:12 UTC

[jira] [Created] (HBASE-15856) Cached Connection instances can wind up with addresses never resolved

Gary Helmling created HBASE-15856:
-------------------------------------

             Summary: Cached Connection instances can wind up with addresses never resolved
                 Key: HBASE-15856
                 URL: https://issues.apache.org/jira/browse/HBASE-15856
             Project: HBase
          Issue Type: Bug
          Components: Client
            Reporter: Gary Helmling
            Assignee: Gary Helmling
            Priority: Critical


During periods where DNS is not working properly, we can wind up caching connections to master or regionservers where the initial hostname resolution and the resolution is never re-attempted.  This means that clients will forever get UnknownHostException for any calls.

When constructing a BlockingRpcChannelImplementation, we instantiate the InetSocketAddress to use for the connection.  This instance is then used in the rpc client connection, where we check isUnresolved() and throw an UnknownHostException if that returns true.  However, at this point the rpc channel is already cached in the HConnectionImplementation map of stubs.  So at this point it will never be resolved.

Setting the config for hbase.resolve.hostnames.on.failure masks this issue, since the stub key used is modified to contain the address.  However, even in that case, if DNS fails, an rpc channel instance with unresolved ISA will still be cached in the stubs under the hostname only key.



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