jolshan commented on code in PR #14629: URL: https://github.com/apache/kafka/pull/14629#discussion_r1370901998
########## core/src/main/scala/kafka/server/KafkaRequestHandler.scala: ########## @@ -55,23 +55,23 @@ object KafkaRequestHandler { * @param fun Callback function to execute * @return Wrapped callback that would execute `fun` on a request thread */ - def wrap[T](fun: T => Unit): T => Unit = { + def wrap[T](fun: (RequestLocal, T) => Unit, requestLocal: RequestLocal): T => Unit = { val requestChannel = threadRequestChannel.get() val currentRequest = threadCurrentRequest.get() if (requestChannel == null || currentRequest == null) { if (!bypassThreadCheck) throw new IllegalStateException("Attempted to reschedule to request handler thread from non-request handler thread.") - T => fun(T) + T => fun(requestLocal, T) } else { T => { if (threadCurrentRequest.get() != null) { // If the callback is actually executed on a request thread, we can directly execute // it without re-scheduling it. - fun(T) + fun(requestLocal, T) Review Comment: This change was made for when we want to execute the callback early on the same thread as the one receiving the request. (Ie, before we do verification) In this case, the current request is actually the same. I think we should adjust the conditional to reflect that. -- 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. To unsubscribe, e-mail: jira-unsubscr...@kafka.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org