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

Michael Frankfurter updated CAMEL-10179:
----------------------------------------
    Description: 
I have a class that uses a netty4 producer. While doing some load testing, I 
started seeing a lot of stack traces like the following:

{code}
io.netty.util.concurrent.BlockingOperationException: 
DefaultChannelPromise@3ee2397e(incomplete)
        at 
io.netty.util.concurrent.DefaultPromise.checkDeadLock(DefaultPromise.java:391) 
~[netty-all-4.0.34.Final.jar:4.0.34.Final]
        at 
io.netty.channel.DefaultChannelPromise.checkDeadLock(DefaultChannelPromise.java:157)
 ~[netty-all-4.0.34.Final.jar:4.0.34.Final]
        at 
io.netty.util.concurrent.DefaultPromise.awaitUninterruptibly(DefaultPromise.java:284)
 ~[netty-all-4.0.34.Final.jar:4.0.34.Final]
        at 
io.netty.channel.DefaultChannelPromise.awaitUninterruptibly(DefaultChannelPromise.java:135)
 ~[netty-all-4.0.34.Final.jar:4.0.34.Final]
        at 
io.netty.channel.DefaultChannelPromise.awaitUninterruptibly(DefaultChannelPromise.java:28)
 ~[netty-all-4.0.34.Final.jar:4.0.34.Final]
        at 
org.apache.camel.component.netty4.NettyProducer.openChannel(NettyProducer.java:468)
 ~[camel-netty4-2.17.1.jar:2.17.1]
...
{code}

It seems to be the same like in CAMEL-8193 but during the opening phase, not 
the closing phase.

I had a look at 
{{org.apache.camel.component.netty4.NettyProducer.openChannel()}}, line 468 and 
maybe using {{channelFuture..addListener(...)}} instead of 
{{channelFuture.awaitUninterruptibly();}} at that point may fix this issue.

Would be great if somebody could take a look.

  was:
I have a class that uses a netty4 producer. While doing some load testing, I 
started seeing a lot of stack traces like the following:

{code}
io.netty.util.concurrent.BlockingOperationException: 
DefaultChannelPromise@3ee2397e(incomplete)
        at 
io.netty.util.concurrent.DefaultPromise.checkDeadLock(DefaultPromise.java:391) 
~[netty-all-4.0.34.Final.jar:4.0.34.Final]
        at 
io.netty.channel.DefaultChannelPromise.checkDeadLock(DefaultChannelPromise.java:157)
 ~[netty-all-4.0.34.Final.jar:4.0.34.Final]
        at 
io.netty.util.concurrent.DefaultPromise.awaitUninterruptibly(DefaultPromise.java:284)
 ~[netty-all-4.0.34.Final.jar:4.0.34.Final]
        at 
io.netty.channel.DefaultChannelPromise.awaitUninterruptibly(DefaultChannelPromise.java:135)
 ~[netty-all-4.0.34.Final.jar:4.0.34.Final]
        at 
io.netty.channel.DefaultChannelPromise.awaitUninterruptibly(DefaultChannelPromise.java:28)
 ~[netty-all-4.0.34.Final.jar:4.0.34.Final]
        at 
org.apache.camel.component.netty4.NettyProducer.openChannel(NettyProducer.java:468)
 ~[camel-netty4-2.17.1.jar:2.17.1]
...
{code}

It seems to be the same like in CAMEL-8193 but during the opening phase, not 
the closing phase.

I had a look at `org.apache.camel.component.netty4.NettyProducer.openChannel(), 
line 468` and maybe using `channelFuture..addListener(...)` instead of 
`channelFuture.awaitUninterruptibly();` at that point may fix this issue.

Would be great if somebody could take a look.


> Frequent BlockingOperationExceptions under load in NettyProducer.openChannel()
> ------------------------------------------------------------------------------
>
>                 Key: CAMEL-10179
>                 URL: https://issues.apache.org/jira/browse/CAMEL-10179
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-netty4
>    Affects Versions: 2.17.2
>            Reporter: Michael Frankfurter
>
> I have a class that uses a netty4 producer. While doing some load testing, I 
> started seeing a lot of stack traces like the following:
> {code}
> io.netty.util.concurrent.BlockingOperationException: 
> DefaultChannelPromise@3ee2397e(incomplete)
>         at 
> io.netty.util.concurrent.DefaultPromise.checkDeadLock(DefaultPromise.java:391)
>  ~[netty-all-4.0.34.Final.jar:4.0.34.Final]
>         at 
> io.netty.channel.DefaultChannelPromise.checkDeadLock(DefaultChannelPromise.java:157)
>  ~[netty-all-4.0.34.Final.jar:4.0.34.Final]
>         at 
> io.netty.util.concurrent.DefaultPromise.awaitUninterruptibly(DefaultPromise.java:284)
>  ~[netty-all-4.0.34.Final.jar:4.0.34.Final]
>         at 
> io.netty.channel.DefaultChannelPromise.awaitUninterruptibly(DefaultChannelPromise.java:135)
>  ~[netty-all-4.0.34.Final.jar:4.0.34.Final]
>         at 
> io.netty.channel.DefaultChannelPromise.awaitUninterruptibly(DefaultChannelPromise.java:28)
>  ~[netty-all-4.0.34.Final.jar:4.0.34.Final]
>         at 
> org.apache.camel.component.netty4.NettyProducer.openChannel(NettyProducer.java:468)
>  ~[camel-netty4-2.17.1.jar:2.17.1]
> ...
> {code}
> It seems to be the same like in CAMEL-8193 but during the opening phase, not 
> the closing phase.
> I had a look at 
> {{org.apache.camel.component.netty4.NettyProducer.openChannel()}}, line 468 
> and maybe using {{channelFuture..addListener(...)}} instead of 
> {{channelFuture.awaitUninterruptibly();}} at that point may fix this issue.
> Would be great if somebody could take a look.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to