You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Andrea Cosentino (JIRA)" <ji...@apache.org> on 2017/11/20 12:07:00 UTC
[jira] [Assigned] (CAMEL-12016) Invalid Pool Exhausted error on
camel-netty4
[ https://issues.apache.org/jira/browse/CAMEL-12016?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andrea Cosentino reassigned CAMEL-12016:
----------------------------------------
Assignee: Andrea Cosentino
> 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
> Assignee: Andrea Cosentino
> Fix For: 2.19.5, 2.20.2, 2.21.0, 2.18.6
>
>
> 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)