[ https://issues.apache.org/jira/browse/KAFKA-6661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16401254#comment-16401254 ]
Ewen Cheslack-Postava commented on KAFKA-6661: ---------------------------------------------- [~rhauch] Got this cherry-picked back to 0.10.0. If we want 0.9.0 as well, we probably need a separate PR since there was enough code movement to make it non-trivial. On a related note, it wasn't too bad in this case, but for things we want to backport its better to separate the must-have stuff from the nice-to-have improvements. It's not so much the risk (in this case it was just a toString and some log statements), but that the larger the patch, the less likely we get a clean cherry-pick and that's a lot more time consuming in cases where we want to cherry-pick through a bunch of release branches. In this case the pain was really caused by a different commit that mostly made cosmetic improvements that make cherry-picking encounter conflicts, but something to keep in mind in the future. > Sink connectors that explicitly 'resume' topic partitions can resume a paused > task > ---------------------------------------------------------------------------------- > > Key: KAFKA-6661 > URL: https://issues.apache.org/jira/browse/KAFKA-6661 > Project: Kafka > Issue Type: Bug > Components: KafkaConnect > Affects Versions: 0.9.0.0, 0.10.0.0, 0.11.0.0, 1.0.0 > Reporter: Randall Hauch > Assignee: Randall Hauch > Priority: Critical > Fix For: 0.10.0.2, 0.10.1.2, 0.10.2.2, 0.11.0.3, 1.0.2, 1.1.1 > > > Sink connectors are allowed to use the {{SinkTaskContext}}'s methods to > explicitly pause and resume topic partitions. This is useful when connectors > need additional time processing the records for specific topic partitions > (e.g., the external system has an outage). > However, when the sink connector has been paused via the REST API, the worker > for the sink tasks pause the consumer. When the connector is polled, the poll > request might timeout and return no records. Connect then calls the task's > {{put(...)}} method (with no records), and this allows the task to optionally > call any of the {{SinkTaskContext}}'s pause or resume methods. If it calls > resume, this will unexpectedly resume the paused consumer, causing the > consumer to return messages and the connector to process those messages -- > despite the connector still being paused. > This is reported against 1.0, but the affected code has not been changed > since at least 0.9.0.0. > A workaround is to remove rather than pause a connector. It's inconvenient, > but it works. -- This message was sent by Atlassian JIRA (v7.6.3#76005)