[ https://issues.apache.org/jira/browse/KAFKA-17223?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Chia-Ping Tsai resolved KAFKA-17223. ------------------------------------ Fix Version/s: 4.0.0 Resolution: Fixed > Retrying the call after encoutering UnsupportedVersionException will cause > ConcurrentModificationException > ---------------------------------------------------------------------------------------------------------- > > Key: KAFKA-17223 > URL: https://issues.apache.org/jira/browse/KAFKA-17223 > Project: Kafka > Issue Type: Bug > Components: admin, clients > Reporter: Chia-Ping Tsai > Assignee: PoAn Yang > Priority: Minor > Fix For: 4.0.0 > > > {code:java} > [2024-07-31 07:11:03,928] ERROR Uncaught exception in thread > 'kafka-admin-client-thread | adminclient-1': > (org.apache.kafka.common.utils.KafkaThread:51) > java.util.ConcurrentModificationException > at > java.base/java.util.ArrayList$Itr.checkForComodification(ArrayList.java:1013) > at java.base/java.util.ArrayList$Itr.remove(ArrayList.java:981) > at > org.apache.kafka.clients.admin.KafkaAdminClient$AdminClientRunnable.maybeDrainPendingCalls(KafkaAdminClient.java:1207) > at > org.apache.kafka.clients.admin.KafkaAdminClient$AdminClientRunnable.processRequests(KafkaAdminClient.java:1510) > at > org.apache.kafka.clients.admin.KafkaAdminClient$AdminClientRunnable.run(KafkaAdminClient.java:1464) > at java.base/java.lang.Thread.run(Thread.java:840) > {code} > The steps producing above error are shown below. > 1. maybeDrainPendingCall[0] encounter error when calling > `call.nodeProvider.provide();`[1] > 2. `runnable.pendingCalls.add(this)`[2] adds the call back to `pendingCalls` > 3. `pendingIter.remove();` tries to remove item from the modified array list. > IMHO, we should add call back to `newCalls` rather than `pendingCalls`. This > approach is to revert a part of KAFKA-12432 > [0] > https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/clients/admin/KafkaAdminClient.java#L1206 > [1] > https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/clients/admin/KafkaAdminClient.java#L1219 > [2] > https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/clients/admin/KafkaAdminClient.java#L927 > [3] > https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/clients/admin/KafkaAdminClient.java#L1219 -- This message was sent by Atlassian Jira (v8.20.10#820010)