You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Gary Tully (JIRA)" <ji...@apache.org> on 2009/11/13 16:25:52 UTC

[jira] Resolved: (AMQ-2028) ActiveMQSessionExecutor.taskRunner usage is very non-thread-safe

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

Gary Tully resolved AMQ-2028.
-----------------------------

       Resolution: Fixed
    Fix Version/s:     (was: 5.3.0)
                   5.3.1

fixed applied in r835874
left use of volatile but tidied up stop() logic and creation of new taskRunner if queue was stopped. This avoids the NPE. Came across this with useDedicatedTaskRunner=true system property, result was leaked threads due to this sync issue.

> ActiveMQSessionExecutor.taskRunner usage is very non-thread-safe
> ----------------------------------------------------------------
>
>                 Key: AMQ-2028
>                 URL: https://issues.apache.org/activemq/browse/AMQ-2028
>             Project: ActiveMQ
>          Issue Type: Bug
>    Affects Versions: 5.3.0
>            Reporter: David Jencks
>            Assignee: David Jencks
>             Fix For: 5.3.1
>
>         Attachments: ActiveMQSessionExecutor.patch
>
>
> cmon guys,
>                     if (taskRunnerCreated.compareAndSet(false, true)) {
>                         if (taskRunner == null) {
>                             taskRunner = session.connection.getSessionTaskRunner().createTaskRunner(this,
>                                     "ActiveMQ Session: " + session.getSessionId());
>                         }
>                     }
>                     taskRunner.wakeup();
> is not anywhere close to thread safe.
> I'm seeing JmsClientAckTest and JmsRedeliveredTest failing due to this.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.