You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@kafka.apache.org by "Mark Anderson (JIRA)" <ji...@apache.org> on 2019/04/11 14:30:00 UTC

[jira] [Resolved] (KAFKA-8182) IllegalStateException in NetworkClient.initiateConnect when handling UnknownHostException thrown from ClusterConnectionStates.connecting

     [ https://issues.apache.org/jira/browse/KAFKA-8182?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mark Anderson resolved KAFKA-8182.
----------------------------------
    Resolution: Duplicate

Resolving as I've confirmed this is a duplicate of KAFKA-7974 and is fixed in 2.2.1 builds.

> IllegalStateException in NetworkClient.initiateConnect when handling UnknownHostException thrown from ClusterConnectionStates.connecting 
> -----------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: KAFKA-8182
>                 URL: https://issues.apache.org/jira/browse/KAFKA-8182
>             Project: Kafka
>          Issue Type: Bug
>          Components: network
>    Affects Versions: 2.2.0, 2.1.1
>            Reporter: Mark Anderson
>            Priority: Major
>
> When NetworkUtils.initiateConnect calls connectionStates.connecting an UnknownHostException can be thrown by ClientUtils.resolve when creating a new NodeConnectionState .
> In the above case the nodeState map within ClusterConnectionStates will not contain an entry for the node ID.
> The catch clause within NetworkUtils.initiateConnect immediately calls connectionStates.disconnected but this makes the assumption that a NodeConnectionState entry exists for the node ID. This assumption is incorrect when an UnknownHostException is thrown as described above and leads to an IllegalStateException like the following:
> {noformat}
> java.lang.IllegalStateException: No entry found for connection 2147483645|
>   at org.apache.kafka.clients.ClusterConnectionStates.nodeState(ClusterConnectionStates.java:339)|
>   at org.apache.kafka.clients.ClusterConnectionStates.disconnected(ClusterConnectionStates.java:143)|
>   at org.apache.kafka.clients.NetworkClient.initiateConnect(NetworkClient.java:926)|
>    at org.apache.kafka.clients.NetworkClient.ready(NetworkClient.java:287)|{noformat}
> This is an issue when running in K8s since if a node is marked not ready then DNS resolution starts to fail when resolving the address of the broker on that node.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)