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

Kim van der Riet resolved QPID-1917.
------------------------------------

       Resolution: Fixed
    Fix Version/s: 0.5

The C++ async store relies on the broker queue destructors being called to 
flush the store memory cache to disk prior to exiting. However, owing to 
QPID-2004, this is not happening, and the queue and store objects are leaked. 
This results in the dequeues, which are the last records in the test to be sent 
to the store, being lost, and on recovery for a subsequent test, the records 
from the previous test still being present.

The store now keeps a list of all active journal instances, and registers a 
finalize method in the store plugin. This results in each store instance being 
stopped, and consequently flushed when the store module is finalized. The 
destructor stops remain, but as a backstop. (svn r.3518)

> the java async profile is failing due to suspicous broker behavior when async 
> store is loaded
> ---------------------------------------------------------------------------------------------
>
>                 Key: QPID-1917
>                 URL: https://issues.apache.org/jira/browse/QPID-1917
>             Project: Qpid
>          Issue Type: Bug
>          Components: C++ Broker
>    Affects Versions: 0.6
>            Reporter: Rafael H. Schloming
>            Assignee: Kim van der Riet
>             Fix For: 0.5
>
>         Attachments: 
> TEST-org.apache.qpid.client.MessageListenerMultiConsumerTest.testAsynchronousRecieve.out,
>  
> TEST-org.apache.qpid.client.MessageListenerMultiConsumerTest.testRecieveInterleaved.out
>
>
> The async profile fails when running against the cpp broker with persistence 
> enabled. I've analyzed the cause, and it appears that 
> MessageListenerMultiConsumerTest.testAsynchronousRecieve is running 
> successfully, however the messages that it sends and then consumes are 
> erroneously recovered the next time the broker restarts, and this causes 
> failures in many subsequent tests.
> I've included the log output from the test run. I've modified 
> MessageListenerMultiConsumerTest to generate a random UUID to identify each 
> test run, and marked each message with this test-id. This makes it clear that 
> the messages which were consumed according to the logs here:
> TEST-org.apache.qpid.client.MessageListenerMultiConsumerTest.testAsynchronousRecieve.out
> Are actually resent in the test that follows here:
> TEST-org.apache.qpid.client.MessageListenerMultiConsumerTest.testRecieveInterleaved.out
> The broker logging in the first file indicates that the broker did receive 
> the acknowledgment for the messages in question, and the second file shows 
> those messages being sent anyways. Note that there is a broker restart in 
> between the two tests.

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


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to