[
https://issues.apache.org/jira/browse/CAMEL-8626?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Mateusz Nowakowski reopened CAMEL-8626:
---------------------------------------
Still exchangesInFlightStartTimestamps leaking (see MAT dump below)
However it is a case of one of ManagedSuspendableRoute object out of existing
214 in the system.
It is for a route:
{code}
from("direct:loopV300")
.choice().when(property(WHILE_COUNTER).isGreaterThan(0))
// some procesing
.setProperty(WHILE_COUNTER,
decrementProperty(WHILE_COUNTER))
.to("direct:loopV300")
.end();
{code}
MAT dump:
{code}
Class Name
| Shallow Heap | Retained Heap
-------------------------------------------------------------------------------------------------------------------------------------------------------
org.apache.camel.management.mbean.ManagedSuspendableRoute @ 0x78b76a5e8
| 128 | 153 059 616
|- <class> class org.apache.camel.management.mbean.ManagedSuspendableRoute @
0x789ef31b0 | 0 | 0
|- lastExchangeCompletedExchangeId java.lang.String @ 0x782074c98
ID-plabq10-dev-sabre-com-30368-1429011401321-0-934556| 24 |
152
|- context org.apache.camel.spring.SpringCamelContext @ 0x788396c88
| 384 | 83 344
|- exchangesInFlightStartTimestamps java.util.concurrent.ConcurrentSkipListMap
@ 0x789fb5760 | 48 | 153 056 936
|- exchangesInFlightKeys java.util.concurrent.ConcurrentHashMap @ 0x789fb5790
| 48 | 1 792
|- route org.apache.camel.impl.EventDrivenConsumerRoute @ 0x78a7b88d8
| 72 | 592
|- exchangesTotal org.apache.camel.management.mbean.Statistic @ 0x78bb01220
| 40 | 40
|- resetTimestamp org.apache.camel.management.mbean.Statistic @ 0x78bb01248
| 40 | 40
|- exchangesCompleted org.apache.camel.management.mbean.Statistic @ 0x78bb01270
| 40 | 40
|- exchangesFailed org.apache.camel.management.mbean.Statistic @ 0x78bb01298
| 40 | 40
|- exchangesInflight org.apache.camel.management.mbean.Statistic @ 0x78bb012c0
| 40 | 40
|- failuresHandled org.apache.camel.management.mbean.Statistic @ 0x78bb012e8
| 40 | 40
|- redeliveries org.apache.camel.management.mbean.Statistic @ 0x78bb01310
| 40 | 40
|- externalRedeliveries org.apache.camel.management.mbean.Statistic @
0x78bb01338 | 40 | 40
|- minProcessingTime org.apache.camel.management.mbean.Statistic @ 0x78bb01360
| 40 | 40
|- maxProcessingTime org.apache.camel.management.mbean.Statistic @ 0x78bb01388
| 40 | 40
|- totalProcessingTime org.apache.camel.management.mbean.Statistic @
0x78bb013b0 | 40 |
40
|- lastProcessingTime org.apache.camel.management.mbean.Statistic @ 0x78bb013d8
| 40 | 40
|- deltaProcessingTime org.apache.camel.management.mbean.Statistic @
0x78bb01400 | 40 |
40
|- meanProcessingTime org.apache.camel.management.mbean.Statistic @ 0x78bb01428
| 40 | 40
|- firstExchangeCompletedTimestamp org.apache.camel.management.mbean.Statistic
@ 0x78bb01450 | 40 | 40
|- firstExchangeFailureTimestamp org.apache.camel.management.mbean.Statistic @
0x78bb01478 | 40 | 40
|- lastExchangeCompletedTimestamp org.apache.camel.management.mbean.Statistic @
0x78bb014a0 | 40 | 40
|- lastExchangeFailureTimestamp org.apache.camel.management.mbean.Statistic @
0x78bb014c8 | 40 | 40
|- load org.apache.camel.management.mbean.LoadTriplet @ 0x78bb014f0
| 40 | 40
|- firstExchangeCompletedExchangeId java.lang.String @ 0x790515100
ID-plabq10-dev-sabre-com-30368-1429011401321-0-2 | 24 |
136
|- firstExchangeFailureExchangeId java.lang.String @ 0x7928bb518
ID-plabq10-dev-sabre-com-30368-1429011401321-0-223200 | 24 |
152
|- lastExchangeFailureExchangeId java.lang.String @ 0x79931b290
ID-plabq10-dev-sabre-com-30368-1429011401321-0-834588 | 24 |
152
-------------------------------------------------------------------------------------------------------------------------------------------------------
route.endpoint direct://loopV300
exchangesInFlightKeys size = 0
exchangesInFlightStartTimestamps size = 1 401 792
exchangeInFlight.value 0
exchangesTotal.value 1 869 106
exchangedFailed.value 10
exchangesCompleted.value 1 869 096
{code}
> Leaking exchangesInFlightKeys in ManagedRoute
> ---------------------------------------------
>
> Key: CAMEL-8626
> URL: https://issues.apache.org/jira/browse/CAMEL-8626
> Project: Camel
> Issue Type: Bug
> Components: camel-core
> Affects Versions: 2.15.1
> Environment: Java 8 u 40 64 bit, Linux
> Reporter: Mateusz Nowakowski
> Assignee: Claus Ibsen
> Priority: Critical
> Fix For: 2.15.2, 2.16.0
>
> Attachments: camel-core-2.15.2-SNAPSHOT.jar
>
>
> Having a camel context with a single route:
> {code}
> onException(Throwable.class)
> .handled(true)
> .process(handleException()); // essentially doing
> exchange.setException(someConvertedException);
> from("direct:generalFlow")
> .routingSlip(property(GeneralFlowRoute.class.getName()));
> {code}
> started from Spring:
> {code}
> <camelContext id="flows" xmlns="http://camel.apache.org/schema/spring">
> <template id="template" defaultEndpoint="direct:generalFlow"/>
> <routeBuilder ref="generalFlow"/>
> </camelContext>
> <bean id="generalFlow" class="com.blabla.GeneralFlowRoute"/>
> {code}
> During performance test both exchangesInFlightKeys and
> exchangesInFlightStartTimestamps are accumulating over time.
> But if the test is run in one thread with debug - nothing is accumulated.
> Issue found after migration from 2.14.1 to 2.15.1
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)