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. It seems none of 
the tests in `core/src/test/scala/unit/kafka/network/SocketServerTest.scala` 
have this kind of behavior. `Acceptor` appears multiple times within 
`SocketServer`, in multiple forms. So it seems we have to modify some code in 
`SocketServer` to enable our new `Acceptor`.




-- 
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


Reply via email to