functioner commented on a change in pull request #11504: URL: https://github.com/apache/kafka/pull/11504#discussion_r753548985
########## File path: core/src/main/scala/kafka/network/SocketServer.scala ########## @@ -734,6 +734,10 @@ private[kafka] class Acceptor(val endPoint: EndPoint, val endThrottleTimeMs = e.startThrottleTimeMs + e.throttleTimeMs throttledSockets += DelayedCloseSocket(socketChannel, endThrottleTimeMs) None + case e: IOException => + info(s"Encounter IOException", e) + closeSocket(socketChannel) Review comment: There are multiple classes defined in `core/src/main/scala/kafka/network/SocketServer.scala`. The `accept` method belongs to `Acceptor`, rather than `SocketServer`, so we can't override `accept` the way you show. We need to override `accept` in `Acceptor`, and then use this `Acceptor` when the `SocketServer` is initialized. Therefore, we need to first override `createAcceptor` in `SocketServer`, and then override `accept` in `Acceptor`. In addition, we need to change `createAcceptor` & `accept` from private to protected; we also need to change some fields from private to protected. I've pushed a new commit implementing a test using this idea. I've confirmed that this test will pass only when the IOException is properly handled as I pointed out. -- 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