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

ASF GitHub Bot commented on AMQ-7107:
-------------------------------------

GitHub user alanprot opened a pull request:

    https://github.com/apache/activemq/pull/318

    AMQ-7107 - Make QueueBrowsingTest and UsageBlockedDispatchTest succee…

    …d with ConcurrentStoreAndDispachQueues=false

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/alanprot/activemq AMQ-7107

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/activemq/pull/318.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #318
    
----
commit 2eda327abac8bd092e094b313314682cd9269e36
Author: Alan Protasio <alanprot@...>
Date:   2018-11-21T19:01:19Z

    AMQ-7107 - Make QueueBrowsingTest and UsageBlockedDispatchTest succeed with 
ConcurrentStoreAndDispachQueues=false

----


> QueueBrowsingTest and UsageBlockedDispatchTest are failing with 
> ConcurrentStoreAndDispachQueues=false
> -----------------------------------------------------------------------------------------------------
>
>                 Key: AMQ-7107
>                 URL: https://issues.apache.org/jira/browse/AMQ-7107
>             Project: ActiveMQ
>          Issue Type: Test
>            Reporter: Alan Protasio
>            Priority: Minor
>
> Hi,
> I was working towards https://issues.apache.org/jira/browse/AMQ-7028 and 
> after my change QueueBrowsingTest and UsageBlockedDispatchTest were failing.
> QueueBrowsingTest was changed by 
> https://issues.apache.org/jira/browse/AMQ-4495 and it is testing if a full 
> page was pagedIn by the cursor.
> The problem is because this test was only succeeding due how 
> ConcurrentStoreAndDispachQueues=true is implemented. When this flag is set to 
> True, we increase the memory usage when start the async task and when 
> decrease it when the task is done:
> https://github.com/alanprot/activemq/blob/master/activemq-broker/src/main/java/org/apache/activemq/broker/region/Queue.java#L897
> So, imagine this timeline:
> 1 . Send message 1
> 2. The cursor get full and the cache is disabled
> 3. Message1 finish and the memory is freed
> 4. messages 2 to 100 are sent and the cache is skipped
> 5. We call browser queue and the cursor can pageIn messages because the 
> cursorMemory is not full
> Now with ConcurrentStoreAndDispachQueues=false
> 1 . Send message 1
> 2 . Send message 2
> 3. The cursor get full and the cache is disabled
> 4. messages 3 to 100 are sent and the cache is skipped (memory still full)
> 5. We call browser queue and the cursor cannot pageIn messages because the 
> cursorMemory is full
> So, in order to make this test work with 
> ConcurrentStoreAndDispachQueues=false i did a simple change on it... After 
> sending all the messages, consume one of them and make sure that the cursor 
> has memory to pageIn messages.
> Similar thing is happening with UsageBlockedDispatchTest.
> I create 2 more test to do the same test with 
> ConcurrentStoreAndDispachQueues=false and changed it a little bit to make 
> them works with this flag false.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to