You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Benjamin Graf (JIRA)" <ji...@apache.org> on 2017/04/20 18:29:04 UTC

[jira] [Updated] (CAMEL-11179) MultiThread race condition in DefaultShutdownStrategy for suspend/resume

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

Benjamin Graf updated CAMEL-11179:
----------------------------------
    Description: 
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!

  was:
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:
1.) Timeout occurs, ShutdownTask gets completed before main thread
-> JmsConsumer gets stopped (listener gets destroyed), resume has no effect
2.) 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!


> 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
>
> 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)