tombentley commented on a change in pull request #10743:
URL: https://github.com/apache/kafka/pull/10743#discussion_r649872433



##########
File path: 
clients/src/main/java/org/apache/kafka/clients/consumer/internals/AbstractCoordinator.java
##########
@@ -858,6 +885,12 @@ public void onSuccess(ClientResponse resp, 
RequestFuture<Void> future) {
         public void onFailure(RuntimeException e, RequestFuture<Void> future) {
             log.debug("FindCoordinator request failed due to {}", 
e.toString());
 
+            if (e instanceof UnsupportedBatchLookupException) {

Review comment:
       This `AdminApiDriver` abstraction is pretty new to me, so I might be 
wide of the mark, but it doesn't appear to handle this very well. The lookup 
strategy has to build a request without knowing either the broker or the API 
versions. It would be possible to pass the `ApiVersions` to the 
`CoordinatorStrategy`, which should let you do the right thing based on the 
minimum of the FindCoordinator API version supported in the whole cluster. 
(That's not completely perfect, since really you'd want to decide on a 
per-broker basis, but I think it would be good enough). Sadly it's not quite 
enough to pass just `ApiVersions`, since it doesn't really know about the nodes 
in the cluster, so you'd need to pass `Metadata` too, which is quite a lot of 
work. So I can understand why it makes sense to do it like this, since it lets 
you benefit from the existing logic for figuring out request versions. 




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to