[ https://issues.apache.org/jira/browse/KAFKA-16967?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Chia-Ping Tsai resolved KAFKA-16967. ------------------------------------ Fix Version/s: 3.9.0 Resolution: Fixed > NioEchoServer fails to register connection and causes flaky failure > ------------------------------------------------------------------- > > Key: KAFKA-16967 > URL: https://issues.apache.org/jira/browse/KAFKA-16967 > Project: Kafka > Issue Type: Bug > Components: core > Reporter: Greg Harris > Assignee: TengYao Chi > Priority: Minor > Labels: flaky-test, newbie > Fix For: 3.9.0 > > > The NioEchoServer calls Selector#register for new connections. This call can > throw exceptions, which then kill the NioEchoServer. This has been observed > in the SslTransportLayerTest testUngracefulRemoteCloseDuringHandshake* > methods. > {noformat} > Exception in thread "echoserver" java.lang.IllegalStateException: There is > already a connection for id 127.0.0.1:40007-127.0.0.1:43710 > at > org.apache.kafka.common.network.Selector.ensureNotRegistered(Selector.java:322) > at org.apache.kafka.common.network.Selector.register(Selector.java:310) > at > org.apache.kafka.common.network.NioEchoServer.run(NioEchoServer.java:229){noformat} > This causes the test to fail with essentially a timeout, when the connection > is expired for becoming idle unexpectedly: > {noformat} > org.opentest4j.AssertionFailedError: Unexpected channel state EXPIRED ==> > expected: <true> but was: <false> > at > org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:151) > at > org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:132) > at org.junit.jupiter.api.AssertTrue.failNotTrue(AssertTrue.java:63) > at org.junit.jupiter.api.AssertTrue.assertTrue(AssertTrue.java:36) > at org.junit.jupiter.api.Assertions.assertTrue(Assertions.java:214) > at > org.apache.kafka.common.network.SslTransportLayerTest.testIOExceptionsDuringHandshake(SslTransportLayerTest.java:898) > at > org.apache.kafka.common.network.SslTransportLayerTest.testUngracefulRemoteCloseDuringHandshakeRead(SslTransportLayerTest.java:837){noformat} > Instead, the NioEchoServer should handle exceptions from register in a > similar fashion to the SocketServer. -- This message was sent by Atlassian Jira (v8.20.10#820010)