Gavrie Philipson created KAFKA-6250:
---------------------------------------

             Summary: Kafka Connect requires permission to create internal 
topics even if they exist
                 Key: KAFKA-6250
                 URL: https://issues.apache.org/jira/browse/KAFKA-6250
             Project: Kafka
          Issue Type: Bug
          Components: KafkaConnect
    Affects Versions: 1.0.0, 0.11.0.1
            Reporter: Gavrie Philipson


When using Kafka Connect with a cluster that doesn't allow the user to create 
topics (due to ACL configuration), Connect fails when trying to create its 
internal topics, even if these topics already exist.

This happens specifically when using hosted [Aiven 
Kafka|https://aiven.io/kafka], which does not permit creation of topics via the 
Kafka Admin Client API.

The problem is that Connect tries to create the topics, and ignores some 
specific errors such as topics that already exist, but not authorization errors.

This is what happens:
{noformat}
2017-11-21 15:57:24,176 [DistributedHerder] ERROR DistributedHerder:206 - 
Uncaught exception in herder work thread, exiting:
org.apache.kafka.connect.errors.ConnectException: Error while attempting to 
create/find topic(s) 'connect-offsets'
        at 
org.apache.kafka.connect.util.TopicAdmin.createTopics(TopicAdmin.java:245)
        at 
org.apache.kafka.connect.storage.KafkaOffsetBackingStore$1.run(KafkaOffsetBackingStore.java:99)
        at 
org.apache.kafka.connect.util.KafkaBasedLog.start(KafkaBasedLog.java:126)
        at 
org.apache.kafka.connect.storage.KafkaOffsetBackingStore.start(KafkaOffsetBackingStore.java:109)
        at org.apache.kafka.connect.runtime.Worker.start(Worker.java:146)
        at 
org.apache.kafka.connect.runtime.AbstractHerder.startServices(AbstractHerder.java:99)
        at 
org.apache.kafka.connect.runtime.distributed.DistributedHerder.run(DistributedHerder.java:194)
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.util.concurrent.ExecutionException: 
org.apache.kafka.common.errors.ClusterAuthorizationException: Cluster 
authorization failed.
        at 
org.apache.kafka.common.internals.KafkaFutureImpl.wrapAndThrow(KafkaFutureImpl.java:45)
        at 
org.apache.kafka.common.internals.KafkaFutureImpl.access$000(KafkaFutureImpl.java:32)
        at 
org.apache.kafka.common.internals.KafkaFutureImpl$SingleWaiter.await(KafkaFutureImpl.java:89)
        at 
org.apache.kafka.common.internals.KafkaFutureImpl.get(KafkaFutureImpl.java:213)
        at 
org.apache.kafka.connect.util.TopicAdmin.createTopics(TopicAdmin.java:226)
        ... 11 more
Caused by: org.apache.kafka.common.errors.ClusterAuthorizationException: 
Cluster authorization failed.
{noformat}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to