Jason Gustafson created KAFKA-5731:
--------------------------------------

             Summary: Connect WorkerSinkTask out of order offset commit can 
lead to inconsistent state
                 Key: KAFKA-5731
                 URL: https://issues.apache.org/jira/browse/KAFKA-5731
             Project: Kafka
          Issue Type: Bug
          Components: KafkaConnect
            Reporter: Jason Gustafson
             Fix For: 1.0.0


In Connect's WorkerSinkTask, we do sequence number validation to ensure that 
offset commits are handled in the right order 
(https://github.com/apache/kafka/blob/trunk/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/WorkerSinkTask.java#L199).
 

Unfortunately, for asynchronous commits, the {{lastCommittedOffsets}} field is 
overridden regardless of this sequence check as long as the response had no 
error 
(https://github.com/apache/kafka/blob/trunk/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/WorkerSinkTask.java#L284).
 

Hence if we get an out of order commit, then the internal state will be 
inconsistent. To fix this, we should only override {{lastCommittedOffsets}} 
after sequence validation.



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

Reply via email to