[prev in list] [next in list] [prev in thread] [next in thread] 

List:       activemq-dev
Subject:    [jira] Created: (AMQ-3061) Broker Deadlock when limiting size of
From:       "Dominic Tootell (JIRA)" <jira () apache ! org>
Date:       2010-11-30 20:40:20
Message-ID: 9176450.34491291149620098.JavaMail.jira () thor
[Download RAW message or body]

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.4.1, 5.3.2
         Environment: Mac 10.6.5 (and Linux Centos)
            Reporter: Dominic Tootell


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.


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic