[ 
https://issues.apache.org/jira/browse/KAFKA-13185?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18101167#comment-18101167
 ] 

Yunseop Eom commented on KAFKA-13185:
-------------------------------------

PR opened: https://github.com/apache/kafka/pull/23048 for KAFKA-13185. Fixed 
the Kafka Connect sink-task recovery path so a failed preCommit rewind clears 
both the pending messageBatch and its associated origOffsets before the next 
poll, preventing stale records and rewound offsets from being delivered again. 
Added a focused regression test using a retriable put followed by a failed 
preCommit; the test was RED before the fix and GREEN after it. 
WorkerSinkTaskTest, connect:runtime Spotless, Checkstyle, SpotBugs, and the 
full connect:runtime test task passed. Status: PR open and awaiting review.

> Kafka Connect should clear messageBatch after rewind
> ----------------------------------------------------
>
>                 Key: KAFKA-13185
>                 URL: https://issues.apache.org/jira/browse/KAFKA-13185
>             Project: Kafka
>          Issue Type: Bug
>          Components: connect
>            Reporter: Jiri Syrovy
>            Priority: Critical
>
> WorkerSinkTask contains logic to handle RetriableException that happened in 
> either put or flush. If the same Exception happens for longer than poll or 
> timeout interval and it's thrown as well in preCommit/flush it causes offset 
> to rewind back to the last committed position. Meanwhile messageBatch 
> (message buffer) is not cleared and during the next poll it's used passed to 
> the put method. 
> During the next poll the same message is read from the broker and again 
> passed to the put method. 
> This results into duplicated message sent by the connector after 
> RetrieableException.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to