You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Timothy Bish (JIRA)" <ji...@apache.org> on 2009/05/15 16:08:51 UTC

[jira] Resolved: (AMQNET-132) Deadlock with acknowledgement

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

Timothy Bish resolved AMQNET-132.
---------------------------------

    Resolution: Fixed

I've made the Consumer use an AtomicBoolean for the closed flag which reduces the contention for the lock.  I wasn't able to reproduce this lockup however to this issue could be reopened if the consumer still locks.

> Deadlock with acknowledgement
> -----------------------------
>
>                 Key: AMQNET-132
>                 URL: https://issues.apache.org/activemq/browse/AMQNET-132
>             Project: ActiveMQ .Net
>          Issue Type: Bug
>          Components: ActiveMQ Client
>         Environment: Windows Quadcore machine, running Visual Studio 2008, and .NET 2.0
>            Reporter: Christian Gross
>            Assignee: Jim Gomes
>             Fix For: 1.1
>
>
> When I send and receive very large number of text based messages the code doing the receiving will lock up. This behavior occurs when you use async or the IMessageConsumer.Read method. 
> The problem is that when the Receive method is called it calls the CheckClosed. In the method CheckClosed there is a lock(this) statement, and it is waiting for the lock to be released. The problem is that the method Dispatch that also uses the same lock is deadlocked on something. In specific the following line is the deadlock:
> ackSession.Connection.OneWay(ack);
> If I switch the session settings from AutoAcknowledge to ClientAcknowledge then I can retrieve all of the messages without any deadlocks occurring.

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