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

Claus Ibsen updated CAMEL-21432:
--------------------------------
    Fix Version/s: 4.8.2
                   4.9.0

> multicast function executes for ever.  Thread is RUNNABLE for ever.  Issue 
> appears with multicast operating on SimpleLRUCache
> -----------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-21432
>                 URL: https://issues.apache.org/jira/browse/CAMEL-21432
>             Project: Camel
>          Issue Type: Bug
>          Components: came-core
>    Affects Versions: 4.4.3
>         Environment: |
> ||Virtual Machine: |OpenJDK 64-Bit Server VM version 17.0.13+11-LTS|
> ||Vendor: |Red Hat, Inc.|
> |
>  
> Processing Application Thread: IBM MQ Consumer. 
> Camel Version: 4.4.3
>            Reporter: Abhi Ashok
>            Assignee: Nicolas Filotto
>            Priority: Minor
>             Fix For: 4.8.2, 4.9.0
>
>         Attachments: image-2024-11-11-14-31-06-831.png
>
>
> multicast function used in a Camel Route never returns back occasionally. 
> Route Code snippet: 
> from(getProcessMessageURI())
> .routeId(getSourceId() + ".businessRoute")
> .autoStartup(this.getConfigValue(getRouteAutoStartup()))
> .transacted(this.getPropagationRequiredPolicy())
> .setHeader("DESTINATION_URI").simple(this.getConfigValue(getOutputQueue()))
> .process(new InputMessageProcessor(this.getConfigValue(getOutputQueue())))
> .bean(new JTEConfigReader(getConfigXml()), "addJTEConfig(${body})")
> .bean(DMUtilityProcessor.class) exchange
> .bean(TranslatorExchangeController.class)
> .removeHeaders("JMS*")
> *.multicast()*
> .to(directOutput(), directPersist());
>  
> *Thread dump shows that the Processing Thread remains in RUNNABLE state.* 
> *All Stuck instance of Threaddump shows access to 
> SimpleLRUCache$OperationContext.close, where it gets stuck.*
>  
> Thread Dump:
> Name: Camel (camelContext) thread #11 - 
> JmsConsumer[IFM.RTR.IFM.ITE.BFM.AKNKRAW.EXPRESS]
> State: *RUNNABLE*
> Total blocked: 13,338  Total waited: 13,968
> Stack trace: 
> org.apache.camel.support.cache{*}.SimpleLRUCache{*}$OperationContext.close(SimpleLRUCache.java:318)
> org.apache.camel.support.cache.SimpleLRUCache.putIfAbsent(SimpleLRUCache.java:125)
> org.apache.camel.processor.MulticastProcessor.wrapInErrorHandler(MulticastProcessor.java:1074)
> org.apache.camel.processor.MulticastProcessor.createProcessorExchangePair(MulticastProcessor.java:1023)
> org.apache.camel.processor.{*}MulticastProcessor{*}.createProcessorExchangePairs(MulticastProcessor.java:990)
> org.apache.camel.processor.MulticastProcessor.doProcess(MulticastProcessor.java:324)
> org.apache.camel.processor.MulticastProcessor.process(MulticastProcessor.java:316)
> org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.doRun(RedeliveryErrorHandler.java:840)
> org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.run(RedeliveryErrorHandler.java:746)
> org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.executeFromQueue(DefaultReactiveExecutor.java:240)
> org.apache.camel.impl.engine.DefaultReactiveExecutor.executeFromQueue(DefaultReactiveExecutor.java:77)
> org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.await(DefaultAsyncProcessorAwaitManager.java:95)
> org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.process(DefaultAsyncProcessorAwaitManager.java:84)
> org.apache.camel.processor.errorhandler.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:200)
> org.apache.camel.impl.engine.CamelInternalProcessor.processTransacted(CamelInternalProcessor.java:397)
> org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:327)
> org.apache.camel.processor.Pipeline$PipelineTask.run(Pipeline.java:102)
> org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.executeFromQueue(DefaultReactiveExecutor.java:240)
> org.apache.camel.impl.engine.DefaultReactiveExecutor.executeFromQueue(DefaultReactiveExecutor.java:77)
> org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.await(DefaultAsyncProcessorAwaitManager.java:95)
> org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.process(DefaultAsyncProcessorAwaitManager.java:84)
> org.apache.camel.spring.spi.TransactionErrorHandler.processByErrorHandler(TransactionErrorHandler.java:244)
> org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:119)
> org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:132)
> org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.doRun(RedeliveryErrorHandler.java:840)
> org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.run(RedeliveryErrorHandler.java:746)
> org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.executeFromQueue(DefaultReactiveExecutor.java:240)
> org.apache.camel.impl.engine.DefaultReactiveExecutor.executeFromQueue(DefaultReactiveExecutor.java:77)
> org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.await(DefaultAsyncProcessorAwaitManager.java:95)
> org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.process(DefaultAsyncProcessorAwaitManager.java:84)
> org.apache.camel.spring.spi.TransactionErrorHandler.processByErrorHandler(TransactionErrorHandler.java:244)
> org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:207)
> org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:36)
> org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
> org.apache.camel.spring.spi.TransactionErrorHandler.doInTransactionTemplate(TransactionErrorHandler.java:200)
> org.apache.camel.spring.spi.TransactionErrorHandler.processInTransaction(TransactionErrorHandler.java:155)
> org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:123)
> org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:132)
> org.apache.camel.impl.engine.CamelInternalProcessor.processNonTransacted(CamelInternalProcessor.java:354)
> org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:330)
> org.apache.camel.processor.Pipeline$PipelineTask.run(Pipeline.java:102)
> org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.doRun(DefaultReactiveExecutor.java:199)
> org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.executeReactiveWork(DefaultReactiveExecutor.java:189)
> org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.tryExecuteReactiveWork(DefaultReactiveExecutor.java:166)
> org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:148)
> org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:59)
> org.apache.camel.processor.Pipeline.process(Pipeline.java:163)
> org.apache.camel.impl.engine.CamelInternalProcessor.processNonTransacted(CamelInternalProcessor.java:354)
> org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:330)
> org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.process(DefaultAsyncProcessorAwaitManager.java:82)
> org.apache.camel.support.AsyncProcessorSupport.process(AsyncProcessorSupport.java:32)
> org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:132)
> org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:783)
> org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:741)
> org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:719)
> org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:333)
> org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:246)
> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1257)
> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1247)
> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1140)
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
> java.lang.Thread.run(Thread.java:840)



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to