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

Chris Egerton edited comment on KAFKA-12879 at 3/9/22, 9:51 PM:
----------------------------------------------------------------

Are there any practical use cases for listing the offsets of a just-created 
topic? Are any of these use cases more likely than ones that would involve 
describing a just-created topic?

It seems a little heavy-handed to suggest to users that they invoke 
{{Admin::describeTopics}} before {{Admin::listOffsets}} in order to handle 
non-existing topics, at least if this pattern hasn't already been documented as 
a best practice for people using the Java admin client.

Preserving existing behavior (which IMO is valid for the reasons Colin has laid 
out) seems like the correct move here.


was (Author: chrisegerton):
Are there any practical use cases for listing the offsets of a just-created 
topic? Are any of these use cases more likely than ones that would involve 
describing a just-created topic?

It seems a little heavy-handed to suggest to users that they invoke 
{{Admin::describeTopics}} before {{Admin::listOffsets}} in order to handle 
non-existing topics, at least if this pattern hasn't already been documented as 
a best practice for people using the Java admin client.

> Compatibility break in Admin.listOffsets()
> ------------------------------------------
>
>                 Key: KAFKA-12879
>                 URL: https://issues.apache.org/jira/browse/KAFKA-12879
>             Project: Kafka
>          Issue Type: Bug
>          Components: admin
>    Affects Versions: 2.8.0, 2.7.1, 2.6.2
>            Reporter: Tom Bentley
>            Assignee: Philip Nee
>            Priority: Major
>
> KAFKA-12339 incompatibly changed the semantics of Admin.listOffsets(). 
> Previously it would fail with {{UnknownTopicOrPartitionException}} when a 
> topic didn't exist. Now it will (eventually) fail with {{TimeoutException}}. 
> It seems this was more or less intentional, even though it would break code 
> which was expecting and handling the {{UnknownTopicOrPartitionException}}. A 
> workaround is to use {{retries=1}} and inspect the cause of the 
> {{TimeoutException}}, but this isn't really suitable for cases where the same 
> Admin client instance is being used for other calls where retries is 
> desirable.
> Furthermore as well as the intended effect on {{listOffsets()}} it seems that 
> the change could actually affect other methods of Admin.
> More generally, the Admin client API is vague about which exceptions can 
> propagate from which methods. This means that it's not possible to say, in 
> cases like this, whether the calling code _should_ have been relying on the 
> {{UnknownTopicOrPartitionException}} or not.



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

Reply via email to