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

shihuafeng updated DRILL-8490:
------------------------------
    Summary: Sender operator fake memory leak result to sql failed  and memory 
statistics error when ChannelClosedException  (was:  Sender operator fake 
memory leak result to sql when ChannelClosedException)

> Sender operator fake memory leak result to sql failed  and memory statistics 
> error when ChannelClosedException
> --------------------------------------------------------------------------------------------------------------
>
>                 Key: DRILL-8490
>                 URL: https://issues.apache.org/jira/browse/DRILL-8490
>             Project: Apache Drill
>          Issue Type: Bug
>          Components:  Server
>    Affects Versions: 1.21.1
>            Reporter: shihuafeng
>            Priority: Major
>             Fix For: 1.22.0
>
>
> *1.DES*
>      **     when ChannelClosedException, .ReconnectingConnection#CloseHandler 
> release sendingAccountor reference counter before netty release buffer, so 
> operator was closed before memory is released by netty .
>  
> *2 .exception info*
>  
> 2024-04-13 08:45:39,909 [DataClient-3] WARN  
> o.apache.drill.exec.rpc.RequestIdMap - Failure while attempting to fail rpc 
> response.
> java.lang.IllegalArgumentException: Self-suppression not permitted
>         at java.lang.Throwable.addSuppressed(Throwable.java:1072)
>         at 
> org.apache.drill.common.DeferredException.addException(DeferredException.java:88)
>         at 
> org.apache.drill.common.DeferredException.addThrowable(DeferredException.java:97)
>         at 
> org.apache.drill.exec.work.fragment.FragmentExecutor.fail(FragmentExecutor.java:502)
>         at 
> org.apache.drill.exec.work.fragment.FragmentExecutor.access$400(FragmentExecutor.java:131)
>         at 
> org.apache.drill.exec.work.fragment.FragmentExecutor$ExecutorStateImpl.fail(FragmentExecutor.java:518)
>         at 
> org.apache.drill.exec.ops.FragmentContextImpl.fail(FragmentContextImpl.java:298)
>         at 
> org.apache.drill.exec.ops.FragmentContextImpl$1.accept(FragmentContextImpl.java:152)
>         at 
> org.apache.drill.exec.ops.FragmentContextImpl$1.accept(FragmentContextImpl.java:149)
>         at 
> org.apache.drill.exec.ops.DataTunnelStatusHandler.failed(DataTunnelStatusHandler.java:45)
>         at 
> org.apache.drill.exec.rpc.data.DataTunnel$ThrottlingOutcomeListener.failed(DataTunnel.java:125)
>         at 
> org.apache.drill.exec.rpc.RequestIdMap$RpcListener.setException(RequestIdMap.java:145)
>         at 
> org.apache.drill.exec.rpc.RequestIdMap$SetExceptionProcedure.apply(RequestIdMap.java:78)
>         at 
> org.apache.drill.exec.rpc.RequestIdMap$SetExceptionProcedure.apply(RequestIdMap.java:68)
>         at 
> com.carrotsearch.hppc.IntObjectHashMap.forEach(IntObjectHashMap.java:692)
>         at 
> org.apache.drill.exec.rpc.RequestIdMap.channelClosed(RequestIdMap.java:64)
>         at 
> org.apache.drill.exec.rpc.AbstractRemoteConnection.channelClosed(AbstractRemoteConnection.java:192)
>         at 
> org.apache.drill.exec.rpc.AbstractClientConnection.channelClosed(AbstractClientConnection.java:97)
>         at 
> org.apache.drill.exec.rpc.RpcBus$ChannelClosedHandler.operationComplete(RpcBus.java:158)
>         at 
> org.apache.drill.exec.rpc.RpcBus$ChannelClosedHandler.operationComplete(RpcBus.java:135)
>         at 
> org.apache.drill.exec.rpc.ReconnectingConnection$CloseHandler.operationComplete(ReconnectingConnection.java:205)
>         at 
> org.apache.drill.exec.rpc.ReconnectingConnection$CloseHandler.operationComplete(ReconnectingConnection.java:192)
>         at 
> io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:578)
>         at 
> io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:552)
>         at 
> io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:491)
>         at 
> io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:616)
>         at 
> io.netty.util.concurrent.DefaultPromise.setSuccess0(DefaultPromise.java:605)
>         at 
> io.netty.util.concurrent.DefaultPromise.trySuccess(DefaultPromise.java:104)
>         at 
> io.netty.channel.DefaultChannelPromise.trySuccess(DefaultChannelPromise.java:84)
>         at 
> io.netty.channel.AbstractChannel$CloseFuture.setClosed(AbstractChannel.java:1164)
>         at 
> io.netty.channel.AbstractChannel$AbstractUnsafe.doClose0(AbstractChannel.java:755)
>  
>         at 
> io.netty.channel.AbstractChannel$AbstractUnsafe.close(AbstractChannel.java:731)
>         at 
> io.netty.channel.AbstractChannel$AbstractUnsafe.handleWriteError(AbstractChannel.java:950)
>         at 
> io.netty.channel.AbstractChannel$AbstractUnsafe.flush0(AbstractChannel.java:933)
>         at 
> io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.forceFlush(AbstractNioChannel.java:361)
>         at 
> io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:716)
>         at 
> io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:658)
>         at 
> io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:584)
>         at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:496)
>         at 
> io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
>         at 
> io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
>         at java.lang.Thread.run(Thread.java:748)
> Caused by: org.apache.drill.exec.rpc.ChannelClosedException: Channel closed 
> /10.32.112.138:51108 <--> /10.32.112.138:31012.
>         at 
> org.apache.drill.exec.rpc.RpcBus$ChannelClosedHandler.operationComplete(RpcBus.java:156)
> {noformat}
> *no* further _formatting_ is done here{noformat}



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

Reply via email to