hachikuji commented on a change in pull request #9564: URL: https://github.com/apache/kafka/pull/9564#discussion_r537789168
########## File path: core/src/main/scala/kafka/server/BrokerToControllerChannelManagerImpl.scala ########## @@ -125,15 +129,25 @@ class BrokerToControllerChannelManagerImpl(metadataCache: kafka.server.MetadataC } override def sendRequest(request: AbstractRequest.Builder[_ <: AbstractRequest], - callback: RequestCompletionHandler): Unit = { - requestQueue.put(BrokerToControllerQueueItem(request, callback)) + callback: ControllerRequestCompletionHandler, + retryDeadlineMs: Long): Unit = { + requestQueue.put(BrokerToControllerQueueItem(request, callback, retryDeadlineMs)) requestThread.wakeup() } +} + +abstract class ControllerRequestCompletionHandler extends RequestCompletionHandler { + /** + * Fire when the request transmission time passes the caller defined deadline on the channel queue. + * This is different from the original request's timeout. Review comment: Can we explain how it is different? We want to emphasize that it covers the total time including retries which might be the result of request timeouts. ---------------------------------------------------------------- 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