Mikhail Petrov created IGNITE-28459:
---------------------------------------
Summary: Ignite NIO server may not close client socket channels if
connection was accepted while node is stopping
Key: IGNITE-28459
URL: https://issues.apache.org/jira/browse/IGNITE-28459
Project: Ignite
Issue Type: Improvement
Reporter: Mikhail Petrov
Attachments: wip.patch
Steps that lead to mentioned problem:
1. The thin client establishes a connection to the server.
2. The server accepts the connection and enqueues the socket channel
registration in the selector (see
GridNioServer.AbstractNioClientWorker#offer(),
GridNioServer.NioOperation#CONNECT, GridNioServer.NioOperation#REGISTER)
3. The server stops the NIO server, which results in:
a) stopping queue processing;
b) closing only those socket channels that were registered in the selector (see
GridNioServer.AbstractNioClientWorker#bodyInternal, last block);
4. The thin client's socket channel remains in the queue, unclosed and
unprocessed
This is ca be a major problem for cases when node stops but Java process keeps
running.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)