[ 
https://issues.apache.org/jira/browse/AMQ-6370?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15387460#comment-15387460
 ] 

ASF subversion and git services commented on AMQ-6370:
------------------------------------------------------

Commit 2a815c2e08a5e2f5a056fdafbcd9c30dacf369d5 in activemq's branch 
refs/heads/master from [~gtully]
[ https://git-wip-us.apache.org/repos/asf?p=activemq.git;h=2a815c2 ]

AMQ-6370 - move cleanup lock to connection allocation to avoid contention with 
between store and connection pool. pool connection grant or block is now 
guarded by store lock which lasts till connection is closed


> JDBC message store - jdbc connection pool - potential deadlock with cleanup 
> task when pool exhausted
> ----------------------------------------------------------------------------------------------------
>
>                 Key: AMQ-6370
>                 URL: https://issues.apache.org/jira/browse/AMQ-6370
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: JDBC, Message Store, XA
>    Affects Versions: 5.13.0
>            Reporter: Gary Tully
>            Assignee: Gary Tully
>             Fix For: 5.14.0
>
>
> There is an read/write lock guarding the cleanup task and other jdbc ops in 
> the jdbc message store.
> Typically the read lock is obtained before the connection from the jdbc 
> connection pool.
> In the case of xa transactions, the connection is obtained before the read 
> lock, in transactioncontext.begin, leaving a window between which readlock 
> holders can be blocked pending the connection release.
> If there is a cleanup (and write lock) request before release, the xa 
> transaction cannot obtain a read lock and we are stuck.
> Disabling the cleanup task avoids this issue, but that is only an option if 
> there are no durable subs or if the durable sub cleanup task can be tackled 
> through db admin.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to