[ https://issues.apache.org/jira/browse/KAFKA-10243?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Rajini Sivaram resolved KAFKA-10243. ------------------------------------ Reviewer: Rajini Sivaram Resolution: Fixed > ConcurrentModificationException while processing connection setup timeouts > -------------------------------------------------------------------------- > > Key: KAFKA-10243 > URL: https://issues.apache.org/jira/browse/KAFKA-10243 > Project: Kafka > Issue Type: Bug > Components: network > Reporter: Rajini Sivaram > Assignee: David Jacot > Priority: Major > Fix For: 2.7 > > > From [~guozhang] in [https://github.com/apache/kafka/pull/8683:] > {quote} > java.util.ConcurrentModificationException > at java.util.HashMap$HashIterator.nextNode(HashMap.java:1445) > at java.util.HashMap$KeyIterator.next(HashMap.java:1469) > at > org.apache.kafka.clients.NetworkClient.handleTimedOutConnections(NetworkClient.java:822) > at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:574) > at > org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:265) > at > org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:236) > at > org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:215) > at > org.apache.kafka.clients.consumer.internals.AbstractCoordinator.joinGroupIfNeeded(AbstractCoordinator.java:419) > at > org.apache.kafka.clients.consumer.internals.AbstractCoordinator.ensureActiveGroup(AbstractCoordinator.java:359) > {quote} > While processing connection set up timeouts, we are iterating through the > connecting nodes to process timeouts and we disconnect within the loop, > removing the entry from the set in the loop that it iterating over the set: > {code} > for (String nodeId : connectingNodes) { > if (connectionStates.isConnectionSetupTimeout(nodeId, now)) { > this.selector.close(nodeId); > log.debug( > "Disconnecting from node {} due to socket connection > setup timeout. " + > "The timeout value is {} ms.", > nodeId, > connectionStates.connectionSetupTimeoutMs(nodeId)); > processDisconnection(responses, nodeId, now, > ChannelState.LOCAL_CLOSE); > } > } > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)