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

Raul Kripalani closed CAMEL-5769.
---------------------------------

    Resolution: Fixed

Fixed in trunk, 2.10.x and 2.9.x. Added a test case to reproduce the buggy 
situation: JmsBlockedAsyncRoutingEngineTest.
                
> Camel JMS producer can block a thread under specific circumstances
> ------------------------------------------------------------------
>
>                 Key: CAMEL-5769
>                 URL: https://issues.apache.org/jira/browse/CAMEL-5769
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-jms
>    Affects Versions: 2.8.6, 2.9.4, 2.10.2
>            Reporter: Raul Kripalani
>            Assignee: Raul Kripalani
>            Priority: Critical
>             Fix For: 2.9.5, 2.10.3, 2.11.0
>
>
> This is an edge case, but when the following circumstances concur, the 
> asynchronous routing engine in Camel become blocked:
> - Sending an InOut exchange over JMS (request/reply), where:
> - Persistent messages are enabled (deliveryPersistent=true)
> - useMessageIDasCorrelationID is enabled
> - replyToType is Temporary queues (default) (using TemporaryQueueReplyManager)
> - a timeout is set
> You have to be really unlucky, but if the following condition is satisfied, a 
> thread will become blocked:
> {{time the broker takes to ACK the produced message > message timeout}}
> Hence, if we have a timeout of 3000ms, and the broker takes 4000ms to ACK the 
> message (e.g. slow Disk I/O while the journal is rotating - it happened to 
> us), at some point we'll see this.
> {code}
> 2012-10-30 10:46:57,680 | WARN  | CorrelationMap | 89 - 
> org.apache.camel.camel-core - 2.8.0.fuse-06-11 | Exception occurred during 
> purge task. This exception will be ignored.
> java.lang.NullPointerException
> {code}
> The CorrelationMap is rendered useless, so if subsequent exchanges time out, 
> the ReplyHandler may never get an onTimeout callback, thus leading to the 
> waiting thread getting blocked forever if the async routing engine was in 
> place.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to