Randall Hauch created KAFKA-13770:
-------------------------------------

             Summary: Regression when Connect uses 0.10.x brokers due to 
recently added retry logic in KafkaBasedLog
                 Key: KAFKA-13770
                 URL: https://issues.apache.org/jira/browse/KAFKA-13770
             Project: Kafka
          Issue Type: Bug
          Components: KafkaConnect
    Affects Versions: 2.5.2, 2.8.2, 3.2.0, 3.1.1, 3.0.2, 2.7.3, 2.6.4
            Reporter: Randall Hauch
             Fix For: 2.5.2, 2.8.2, 3.2.0, 3.1.1, 3.0.2, 2.7.3, 2.6.4


KAFKA-12879 recently modified Connect's `KafkaBasedLog` class to add retry 
logic when trying to get the latest offsets for the topic as the 
`KafkaBasedLog` starts up. This method calls a new method in `TopicAdmin` to 
read the latest offsets using retries.

When Connect is using an old broker (version 0.10.x or earlier), the old 
`KafkaBasedLog` logic would catch the `UnsupportedVersionException` thrown by 
the `TopicAdmin` method, and use the consumer to read offsets instead. The new 
retry logic unfortunately _wrapped_ the `UnsupportedVersionException` in a 
`ConnectException`, which means the `KafkaBasedLog` logic doesn't degrade and 
use the consumer, and instead fails.

The `TopicAdmin.retryEndOffsets(...)` method should propagate the 
`UnsupportedVersionException` rather than wrapping it. All other exceptions 
from the admin client are either retriable or already wrapped by a 
`ConnectException`. Therefore, it appears that `UnsupportedVersionException` is 
the only special case here.

KAFKA-12879 was backported to a lot of branches, so this new fix should be as 
well. It does not appear any releases were made with the KAFKA-12879 change.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to