Mirza Aliev created IGNITE-16699:
------------------------------------

             Summary: Properly stop executors for network's user object 
serialization threads
                 Key: IGNITE-16699
                 URL: https://issues.apache.org/jira/browse/IGNITE-16699
             Project: Ignite
          Issue Type: Improvement
            Reporter: Mirza Aliev


We've noticed new warnings in some test's logs after IGNITE-16393 has been 
merged:

{noformat}
2022-03-16 00:04:03:667 +0300 
[WARNING][ItTxDistributedTestThreeNodesThreeReplicas_null_20002-srv-worker-1][DefaultChannelPipeline]
 An exceptionCaught() event was fired, and it reached at the tail of the 
pipeline. It usually means the last handler in the pipeline did not handle the 
exception.
java.util.concurrent.RejectedExecutionException: Task 
java.util.concurrent.FutureTask@18f18e0d[Not completed, task = 
java.util.concurrent.Executors$RunnableAdapter@26616290[Wrapped task = 
org.apache.ignite.network.DefaultMessagingService$$Lambda$1393/0x00000008005c4040@17c4f02c]]
 rejected from java.util.concurrent.ThreadPoolExecutor@8867362[Terminated, pool 
size = 0, active threads = 0, queued tasks = 0, completed tasks = 3053]
        at 
java.base/java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2055)
        at 
java.base/java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:825)
        at 
java.base/java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1355)
        at 
java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118)
        at 
java.base/java.util.concurrent.Executors$DelegatedExecutorService.submit(Executors.java:714)
        at 
org.apache.ignite.network.DefaultMessagingService.onMessage(DefaultMessagingService.java:284)
        at 
org.apache.ignite.internal.network.netty.ConnectionManager.lambda$onMessage$2(ConnectionManager.java:202)
        at 
java.base/java.util.concurrent.CopyOnWriteArrayList.forEach(CopyOnWriteArrayList.java:807)
        at 
org.apache.ignite.internal.network.netty.ConnectionManager.onMessage(ConnectionManager.java:202)
        at 
org.apache.ignite.internal.network.netty.MessageHandler.channelRead(MessageHandler.java:57)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
        at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
        at 
io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324)
        at 
io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:296)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
        at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
        at 
io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
        at 
io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
        at 
io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
        at 
io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:719)
        at 
io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:655)
        at 
io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:581)
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
        at 
io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
        at 
io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
        at 
io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
        at java.base/java.lang.Thread.run(Thread.java:834)
{noformat}
 
Seems that there are some problems when we stop `inboundService` and 
`outboundService` in `org.apache.ignite.network.DefaultMessagingService#stop`.

Probably we should wait for the executors to be stopped using 
`IgniteUtils#shutdownAndAwaitTermination` 



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to