Mikhail Petrov created IGNITE-24948:
---------------------------------------
Summary: SSL Engine may not be closed properly during NIO session
close.
Key: IGNITE-24948
URL: https://issues.apache.org/jira/browse/IGNITE-24948
Project: Ignite
Issue Type: Bug
Reporter: Mikhail Petrov
Lets revisit steps that are occurred during session close:
GridSelectorNioSessionImpl.close() -> .. -> GridNioSslFilter.onSessionClose()
-> GridNioSslFilter.shutdownSession() -> GridNioSslHandler.writeNetBuffer() ->
... -> HeadFilter#onSessionClose -> GridNioServer#close
GridNioSslFilter.shutdownSession() - closes SSL engine.
GridNioSslHandler.writeNetBuffer() - asks SSL Engine to generate message with
CLOSE-NOTIFY header. Which is intended to notify the SSL engine on the other
side of the connection that the session has been closed. Puts this message to
session's outbound buffer that will be asynchronously processes by NIO worker.
GridNioServer#close - adds to the NIO worker queue "state change request" that
closes the connection.
AbstractNioClientWorker#bodyInternal - NIO worker handles first handles state
change requests and then writes data to the socket.
As a result, if connection close request and CLOSE-NOTIFY message is handled
by 1 spin of NIO worker, we simply close the connection and do not send a
CLOSE-NOTIFY message to the SSL Engine.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)