splett2 commented on code in PR #12416: URL: https://github.com/apache/kafka/pull/12416#discussion_r942768273
########## core/src/test/scala/unit/kafka/network/SocketServerTest.scala: ########## @@ -1878,6 +1878,40 @@ class SocketServerTest { }, false) } + /** + * Test to ensure "Selector.poll()" does not block at "select(timeout)" when there is no data in the socket but there + * is data in the buffer. This only happens when SSL protocol is used. + */ + @Test + def testLatencyWithBufferedDataAndNoSocketData(): Unit = { + shutdownServerAndMetrics(server) + + props ++= sslServerProps + val testableServer = new TestableSocketServer(KafkaConfig.fromProps(props)) + testableServer.enableRequestProcessing(Map.empty) + val testableSelector = testableServer.testableSelector + val proxyServer = new ProxyServer(testableServer) + val selectTimeoutMs = 5000 + // set pollTimeoutOverride to "selectTimeoutMs" to ensure poll() timeout is distinct and can be identified + testableSelector.pollTimeoutOverride = Some(selectTimeoutMs) + + try { + val (sslSocket, req1) = makeSocketWithBufferedRequests(testableServer, testableSelector, proxyServer) + + // process the request to trigger SSL handshake + processRequest(testableServer.dataPlaneRequestChannel, req1) Review Comment: nit: this comment is incorrect - the SSL handshake is triggered as part of `makeSocketWithBufferedRequests` -- 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