activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dominic Tootell (JIRA)" <j...@apache.org>
Subject [jira] Commented: (AMQ-3061) Broker Deadlock when limiting size of temp store, and using VirtualTopics
Date Tue, 30 Nov 2010 20:56:11 GMT

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

Dominic Tootell commented on AMQ-3061:
--------------------------------------

Unfortunately the compiled jar with all included deps is over the 10mb limit, so I can't include.

execute:
- *{{mvn clean compile}}* to get *target/5.4.1-deadlock-jar-with-dependencies.jar*

The attached source code is for 5.4.1 broker.

The same issue exists in 5.3.2 (when setting the setTmpDataDirectory on the BrokerService
object, the reason I'm not supplied the test code for this is due the different implementations
returned from the broker.getTempStore() - PListStore (5.4.1) and Store (5.3.12))

Let me know if you need 5.3.2. Unit test code, I can zip up this also, but 5.4.1 is probably
the more useful to you.

cheers
/dom

> Broker Deadlock when limiting size of temp store, and using VirtualTopics
> -------------------------------------------------------------------------
>
>                 Key: AMQ-3061
>                 URL: https://issues.apache.org/jira/browse/AMQ-3061
>             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
>
>
> 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
consumption)
> 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}}*,
i.e.
> - 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.


Mime
View raw message