[ https://issues.apache.org/jira/browse/KAFKA-12270?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Randall Hauch resolved KAFKA-12270. ----------------------------------- Fix Version/s: 2.6.2 2.7.1 2.8.0 Reviewer: Konstantine Karantasis Resolution: Fixed Merged to `trunk` for the upcoming 2.8.0, and cherrypicked to the 2.7 branch for the next 2.7.1 and to the 2.6 branch for the next 2.6.2. > Kafka Connect may fail a task when racing to create topic > --------------------------------------------------------- > > Key: KAFKA-12270 > URL: https://issues.apache.org/jira/browse/KAFKA-12270 > Project: Kafka > Issue Type: Bug > Components: KafkaConnect > Affects Versions: 2.6.0, 2.7.0, 2.8.0 > Reporter: Randall Hauch > Assignee: Randall Hauch > Priority: Critical > Fix For: 2.8.0, 2.7.1, 2.6.2 > > > When a source connector configured with many tasks and to use the new topic > creation feature is run, it is possible that multiple tasks will attempt to > write to the same topic, will see that the topic does not exist, and then > race to create the topic. The topic is only created once, but some tasks > might fail with: > {code:java} > org.apache.kafka.connect.errors.ConnectException: Task failed to create new > topic (name=TOPICX, numPartitions=8, replicationFactor=3, > replicasAssignments=null, configs={cleanup.policy=delete}). Ensure that the > task is authorized to create topics or that the topic exists and restart the > task > at > org.apache.kafka.connect.runtime.WorkerSourceTask.maybeCreateTopic(WorkerSourceTask.java:436) > at > org.apache.kafka.connect.runtime.WorkerSourceTask.sendRecords(WorkerSourceTask.java:364) > at > org.apache.kafka.connect.runtime.WorkerSourceTask.execute(WorkerSourceTask.java:264) > at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:185) > at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:235) > ... {code} > The reason appears to be that the WorkerSourceTask throws an exception if the > topic creation failed, and does not account for the fact that the topic may > have been created between the time the WorkerSourceTask lists existing topics > and tries to create the topic. > > See in particular: > [https://github.com/apache/kafka/blob/5c562efb2d76407011ea88c1ca1b2355079935bc/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/WorkerSourceTask.java#L415-L423] > > This is only an issue when using topic creation settings in the source > connector configuration, and when running multiple tasks that write to the > same topic. > The workaround is to create the topics manually before starting the > connector, or to simply restart the failed tasks using the REST API. -- This message was sent by Atlassian Jira (v8.3.4#803005)