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

Manikumar resolved KAFKA-10109.
-------------------------------
    Fix Version/s: 2.7.0
       Resolution: Fixed

Issue resolved by pull request 8808
[https://github.com/apache/kafka/pull/8808]

> kafka-acls.sh/AclCommand opens multiple AdminClients
> ----------------------------------------------------
>
>                 Key: KAFKA-10109
>                 URL: https://issues.apache.org/jira/browse/KAFKA-10109
>             Project: Kafka
>          Issue Type: Bug
>          Components: tools
>            Reporter: Tom Bentley
>            Assignee: Tom Bentley
>            Priority: Minor
>             Fix For: 2.7.0
>
>
> {{AclCommand.AclCommandService}} uses {{withAdminClient(opts: 
> AclCommandOptions)(f: Admin => Unit)}} to abstract the execution of an action 
> using an {{AdminClient}} instance. Unfortunately the use of this method in 
> implemeting {{addAcls()}} and {{removeAcls()}} calls {{listAcls()}}. This 
> causes the creation of a second {{AdminClient}} instance. When the 
> {{--command-config}} option has been used to specify a {{client.id}} for the 
> Admin client, the second instance  fails to register an MBean, resulting in a 
> warning being logged.
> {code}
> ./bin/kafka-acls.sh --bootstrap-server localhost:9092 --command-config 
> config/broker_connection.conf.reproducing --add --allow-principal User:alice 
> --operation Describe --topic 'test' --resource-pattern-type prefixed
> Adding ACLs for resource `ResourcePattern(resourceType=TOPIC, name=test, 
> patternType=PREFIXED)`: 
>       (principal=User:alice, host=*, operation=DESCRIBE, 
> permissionType=ALLOW) 
> [2020-06-03 18:43:12,190] WARN Error registering AppInfo mbean 
> (org.apache.kafka.common.utils.AppInfoParser)
> javax.management.InstanceAlreadyExistsException: 
> kafka.admin.client:type=app-info,id=administrator_data
>       at com.sun.jmx.mbeanserver.Repository.addMBean(Repository.java:437)
>       at 
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerWithRepository(DefaultMBeanServerInterceptor.java:1898)
>       at 
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerDynamicMBean(DefaultMBeanServerInterceptor.java:966)
>       at 
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(DefaultMBeanServerInterceptor.java:900)
>       at 
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:324)
>       at 
> com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:522)
>       at 
> org.apache.kafka.common.utils.AppInfoParser.registerAppInfo(AppInfoParser.java:64)
>       at 
> org.apache.kafka.clients.admin.KafkaAdminClient.<init>(KafkaAdminClient.java:500)
>       at 
> org.apache.kafka.clients.admin.KafkaAdminClient.createInternal(KafkaAdminClient.java:444)
>       at org.apache.kafka.clients.admin.Admin.create(Admin.java:59)
>       at 
> org.apache.kafka.clients.admin.AdminClient.create(AdminClient.java:39)
>       at 
> kafka.admin.AclCommand$AdminClientService.withAdminClient(AclCommand.scala:105)
>       at 
> kafka.admin.AclCommand$AdminClientService.listAcls(AclCommand.scala:146)
>       at 
> kafka.admin.AclCommand$AdminClientService.$anonfun$addAcls$1(AclCommand.scala:123)
>       at 
> kafka.admin.AclCommand$AdminClientService.$anonfun$addAcls$1$adapted(AclCommand.scala:116)
>       at 
> kafka.admin.AclCommand$AdminClientService.withAdminClient(AclCommand.scala:108)
>       at 
> kafka.admin.AclCommand$AdminClientService.addAcls(AclCommand.scala:116)
>       at kafka.admin.AclCommand$.main(AclCommand.scala:78)
>       at kafka.admin.AclCommand.main(AclCommand.scala)
> Current ACLs for resource `ResourcePattern(resourceType=TOPIC, name=test, 
> patternType=PREFIXED)`: 
>       (principal=User:alice, host=*, operation=DESCRIBE, permissionType=ALLOW)
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to