activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dominic Tootell (JIRA)" <>
Subject [jira] Updated: (AMQ-3061) Broker Deadlock when limiting size of temp store, and using VirtualTopics
Date Fri, 03 Dec 2010 16:31:10 GMT


Dominic Tootell updated AMQ-3061:


Adding 3 potential patches. 

- Have run against the unit test provided.
- Have run against the 5.4.1 src (*{{mvn test}}*)

However, I'm not 100% sure these patches are good, reason being is that in I've
stopped the *{{checkUsage()}}* in doMessageSend(..).  Which is encroaching on ProducerFlowControl,
so concerns me a little.  Anyways, I'll attach for you to look at.


> Broker Deadlock when limiting size of temp store, and using VirtualTopics
> -------------------------------------------------------------------------
>                 Key: AMQ-3061
>                 URL:
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.3.2, 5.4.1
>         Environment: Mac 10.6.5 (and Linux Centos)
>            Reporter: Dominic Tootell
>         Attachments: activemq-deadlock-replication-541.tar.gz,,
FilePendingMessageCursor.patch.txt,, Queue.patch.txt,, StoreQueueCursor.patch.txt
> When limiting the Temp Table space the broker will dead lock:
> - 1 Producer Thread (own connection) writing to VirtualTopic.FooTwo
> -- writes 40000 messages
> - 2 Consumer Threads (each own connection) consuming from Consumer.X.VirtualTopic.FooTwo
> -- consumes message (auto ack - but message ack for good measure - delay of 100ms between
> The dead lock occurs when using the either the KahaDB or ActiveMQPersistence persistence,
and seems more related to the KahaDB implementation used for the Temp storage area.
> I shall attach a test jar, which is a executable jar, from which the issue can be replicated
(I shall attach a zip of the source too - maven project)
> The tests can be run as:
> - java -classpath 5.4.1-deadlock-jar-with-dependencies.jar bbc.forge.domt.activemq.investigation.KahaDBTempStorageDeadlockReplication54Test
> or 
> - java -classpath 5.4.1-deadlock-jar-with-dependencies.jar bbc.forge.domt.activemq.investigation.TempStorageDeadlockReplication54Test
> These classes are also Unit Test Cases.  
> - Producer logs to producer.log
> - Consumes log to consumer.log
> - A Monitor thread just run in the background that detail the number of messages sent
and consumed... logs to monitor.log
> - tests write to the dir *{{target/activemq-data}}*
> To disable limiting the temp storage add the System property *{{limit.temp=false}}*,
> - java -Dlimit.temp=false -classpath 5.4.1-deadlock-jar-with-dependencies.jar bbc.forge.domt.activemq.investigation.TempStorageDeadlockReplication54Test
> This seems to be a different/additional issue to AMQ-2475
> thanks in advance, let me know if you need any more information.
> /dom

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

View raw message