You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@kafka.apache.org by "Randall Hauch (Jira)" <ji...@apache.org> on 2022/03/24 20:31:00 UTC
[jira] [Created] (KAFKA-13770) Regression when Connect uses 0.10.x brokers due to recently added retry logic in KafkaBasedLog
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)