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)

Reply via email to