[ 
https://issues.apache.org/jira/browse/IGNITE-28459?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mikhail Petrov updated IGNITE-28459:
------------------------------------
    Description: 
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.

The problem can be locally reproduced by applying attached patch and running 
org.apache.ignite.client.ReliabilityTest#testServiceProxyFailover test.

  was:
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.


> 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
>            Priority: Major
>              Labels: ise
>         Attachments: reproducer.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.
> The problem can be locally reproduced by applying attached patch and running 
> org.apache.ignite.client.ReliabilityTest#testServiceProxyFailover test.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to