Randall Hauch created KAFKA-6661:
------------------------------------

             Summary: 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: 1.0.0, 0.11.0.0, 0.10.0.0, 0.9.0.0
            Reporter: Randall Hauch
            Assignee: Randall Hauch


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)

Reply via email to