You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Claus Ibsen (JIRA)" <ji...@apache.org> on 2014/12/18 13:22:14 UTC

[jira] [Commented] (CAMEL-8146) Starting and stopping routes leak threads

    [ https://issues.apache.org/jira/browse/CAMEL-8146?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14251585#comment-14251585 ] 

Claus Ibsen commented on CAMEL-8146:
------------------------------------

Thanks for reporting.

> Starting and stopping routes leak threads
> -----------------------------------------
>
>                 Key: CAMEL-8146
>                 URL: https://issues.apache.org/jira/browse/CAMEL-8146
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core
>    Affects Versions: 2.14.0
>            Reporter: Bjørn Ellingsen
>            Assignee: Claus Ibsen
>            Priority: Minor
>             Fix For: 2.14.2, 2.15.0
>
>
> Seems to be identical consequence as with previous issue CAMEL-5677, but perhaps due to a different cause.
> Having a file or SFTP based route, trying something like:
> {code}
> for (int i = 0; i < 50; i++) {
>     camelContext.startRoute(routeId);
>     camelContext.stopRoute(routeId);
> }
> {code}
> results in 50 orphan threads of this type:
> {code}
> "Camel (camel) thread #231 - sftp://user@host/path" #10170 daemon prio=5 os_prio=0 tid=0x00007fa4b46a5800 nid=0x10fc waiting on condition [0x00007fa452934000]
>    java.lang.Thread.State: TIMED_WAITING (parking)
>       at sun.misc.Unsafe.park(Native Method)
>       - parking to wait for  <0x00000000b83dc900> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
>       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
>       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
>       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
>       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
>       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
>       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
>       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>       at java.lang.Thread.run(Thread.java:745)
> {code}
> Switching to suspend/resume solves the problem, however I guess the start/stop issue should be addressed.



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