[
https://issues.apache.org/jira/browse/HDFS-8068?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14481923#comment-14481923
]
Kihwal Lee commented on HDFS-8068:
----------------------------------
The patch adds a check in {{NameNodeProxies#createNonHAProxy()}}. If the
address is unresolved (i.e. cannot be resolved), it throws. This makes the rpc
proxy creation fail for both HA and non-HA case. In HA, failover proxy
providers get this exception and thow a {{RunTimeException}} in {{getProxy()}},
which is called by {{RetryInvocationHandler}} in its ctor or {{invoke()}}
during failover. If {{ConfiguredFailoverProxyProvider}} is used and the
initial proxy object was okay, the second {{getProxy()}} call from {{invoke()}}
will throw. In this case, the particular call will fail instead of the proxy
creation. The (ha)proxy in the {{DFSClient}} instance is still intact, so
creation of underlying non-HA proxy will be retried in the next call.
> Do not retry rpc calls If the proxy contains unresolved address
> ---------------------------------------------------------------
>
> Key: HDFS-8068
> URL: https://issues.apache.org/jira/browse/HDFS-8068
> Project: Hadoop HDFS
> Issue Type: Bug
> Reporter: Kihwal Lee
> Assignee: Kihwal Lee
> Attachments: HDFS-8068.v1.patch
>
>
> When the InetSocketAddress object happens to be unresolvable (e.g. due to
> transient DNS issue), the rpc proxy object will not be usable since the
> client will throw UnknownHostException when a Connection object is created.
> If FailoverOnNetworkExceptionRetry is used as in the standard HA failover
> proxy, the call will be retried, but this will never recover. Instead, the
> validity of address must be checked on pxoy creation and throw if it is
> invalid.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)