[ https://issues.apache.org/jira/browse/CAMEL-12016?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16259053#comment-16259053 ]
ASF GitHub Bot commented on CAMEL-12016: ---------------------------------------- GitHub user dvor4x opened a pull request: https://github.com/apache/camel/pull/2101 CAMEL-12016 : ChannelFuture is not clearly erased from the pool on connection error * Since 2.17.4, ChannelFuture was never release when a connection error occurs. https://issues.apache.org/jira/browse/CAMEL-12016 You can merge this pull request into a Git repository by running: $ git pull https://github.com/dvor4x/camel bugfix/camelNetty4ReleaseChannelFutureOnConnectionError Alternatively you can review and apply these changes as the patch at: https://github.com/apache/camel/pull/2101.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #2101 ---- commit 436cd46724b94406b0c83a2678b06577eced1b50 Author: dvor4x <dvo...@hackerzvoice.net> Date: 2017-11-18T13:54:54Z * Since 2.16.3, ChannelFuture was never release when a connection error occurs. The fact is, pool.borrowObject(); (L224) didn't throw connection exception anymore. ---- > Invalid Pool Exhausted error on camel-netty4 > -------------------------------------------- > > Key: CAMEL-12016 > URL: https://issues.apache.org/jira/browse/CAMEL-12016 > Project: Camel > Issue Type: Bug > Components: camel-netty4 > Affects Versions: 2.17.4, 2.18.0, 2.19.0, 2.20.0, 2.20.1 > Environment: Same behaviour on : Linux, Windows 7, AIX > Using Intelli-J > Reporter: dvor4x > > Hey guys, > Since camel 2.17.4, our application who made some "ping request" brings a > "Pool exhausted" error after 100 trying. > After analysis, since 2.17.4, when camel-netty4 try to connect to a down > host, the connection (ChannelFuture) stay in the pool. > Here is the code to show you : > {code:java} > import org.apache.camel.CamelContext; > import org.apache.camel.Exchange; > import org.apache.camel.builder.RouteBuilder; > import org.apache.camel.impl.DefaultCamelContext; > > import java.util.NoSuchElementException; > > public class main { > public static void main(String args[]) throws Exception { > CamelContext context = new DefaultCamelContext(); > context.addRoutes(new RouteBuilder() { > public void configure() { > onException(NoSuchElementException.class).process(exchange -> > { > > System.out.println(exchange.getProperty(Exchange.EXCEPTION_CAUGHT, > Exception.class)); > }); > > from("timer://myTimer?period=2000"). > setBody() > .simple("Trying to connect to localhost:12345") > .to("stream:out") > > .to("netty4:tcp://localhost:12345?producerPoolMaxActive=4"); > } > }); > context.start(); > Thread.sleep(8000000); > } > } > {code} > The producerPoolMaxActive is set to 4 to bring the error faster. > *The output in 2.17.3 just bellow (all work perfectly)* > _Trying to connect to localhost:12345 > Trying to connect to localhost:12345 > Trying to connect to localhost:12345 > Trying to connect to localhost:12345 > Trying to connect to localhost:12345 > ...._ > *But in version > 2.17.3, we've got this : * > _Trying to connect to localhost:12345 > Trying to connect to localhost:12345 > Trying to connect to localhost:12345 > Trying to connect to localhost:12345 > Trying to connect to localhost:12345 > java.util.NoSuchElementException: Pool exhausted > Trying to connect to localhost:12345 > java.util.NoSuchElementException: Pool exhausted > Trying to connect to localhost:12345 > java.util.NoSuchElementException: Pool exhausted > Trying to connect to localhost:12345 > java.util.NoSuchElementException: Pool exhausted > _ > I've made a pull request to fix it. > Thanks for your help ! -- This message was sent by Atlassian JIRA (v6.4.14#64029)