[
https://issues.apache.org/jira/browse/CAMEL-11179?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15978440#comment-15978440
]
Benjamin Graf commented on CAMEL-11179:
---------------------------------------
Well, timeout is used by default (300s) and there does not a exist a
"forceSuspend" feature. Therefor this can only be avoided by setting default
timeout to infinity? Not a good idea.
> MultiThread race condition in DefaultShutdownStrategy for suspend/resume
> ------------------------------------------------------------------------
>
> Key: CAMEL-11179
> URL: https://issues.apache.org/jira/browse/CAMEL-11179
> Project: Camel
> Issue Type: Bug
> Components: camel-core
> Affects Versions: 2.18.3
> Reporter: Benjamin Graf
> Priority: Minor
>
> If call to suspend with timeout does timeout than two threads are invoking
> forced processing one for suspending and one for hard stopping. This causes
> the Consumer to be possibly left in a dead state.
> E.g. Jms consuming route:
> # Timeout occurs, ShutdownTask gets completed before main thread
> -> JmsConsumer gets stopped (listener gets destroyed), resume has no effect
> # Timeout occurs, ShutdownTask get completet after main thread
> -> JmsConsumer gets stopped first (listener gets destroyed) and get suspended
> second, resume sets Consumer to started but the listener is still destroyed!
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)