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