Randall Hauch created KAFKA-12270:
-------------------------------------
Summary: 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.7.0, 2.6.0, 2.8.0
Reporter: Randall Hauch
Assignee: Randall Hauch
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 message was sent by Atlassian Jira
(v8.3.4#803005)