Jason Gustafson created KAFKA-9190:
--------------------------------------

             Summary: Server leaves connections with expired authentication 
sessions open 
                 Key: KAFKA-9190
                 URL: https://issues.apache.org/jira/browse/KAFKA-9190
             Project: Kafka
          Issue Type: Bug
            Reporter: Jason Gustafson
            Assignee: Jason Gustafson


SocketServer implements some logic to disconnect connections which have expired 
authentication sessions. At the moment, we just call `SelectionKey.cancel` in 
order to trigger this disconnect. I think the expectation is that this causes 
the channel to be closed on the next `poll`, but as far as I can tell, all it 
does is disassociate the selection key from the selector. This means that the 
key never gets selected again and we never close the connection until the 
client times out.

This was found when debugging the flaky test failure 
`EndToEndAuthorizationTest.testNoDescribeProduceOrConsumeWithoutTopicDescribeAcl`.
 I modified the code to call `Selector.close` instead of 
`TransportLayer.disconnect`. I was able to reproduce the session authentication 
expiration, but the connection properly closes and the test does no longer 
times out.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to