You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Torsten Mielke (JIRA)" <ji...@apache.org> on 2011/06/23 12:08:47 UTC

[jira] [Created] (AMQ-3375) stomp consumer might not receive all msgs of a queue

stomp consumer might not receive all msgs of a queue
----------------------------------------------------

                 Key: AMQ-3375
                 URL: https://issues.apache.org/jira/browse/AMQ-3375
             Project: ActiveMQ
          Issue Type: Bug
          Components: Broker
    Affects Versions: 5.5.0
         Environment: stomp consumer on virtual destination 
Tested on Ubuntu 10.10 and MacOSX using java 6.
            Reporter: Torsten Mielke
         Attachments: stomp-testcase.tgz

Have a testcase that connects a Java stomp consumer to a virtual destination queue and consumes a fixed amount of msgs.
During the test I noticed that the consumer does not always receive the full amount of msgs.
Instead the receive times out although JMX QueueSize property is greater than 0. However when trying to browse the queue using JMX, it returns null, despite the fact that not all msgs got dequeued yet (dispatch and dequeue counter < enqueue counter).

So far I reproduced this with a stomp producer/consumer only. The producer writes msgs to a virtual topic VirtualTopic.Foo and the consumer takes msgs off the Consumer.A.VirtualTopic.Foo queue. Using JMX I noticed all msgs got moved from the virtual topic to the queue (reflected by JMX enqueue counter) but not all msgs got consumed.

So it seems the broker lost some msgs on the way. 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (AMQ-3375) stomp consumer might not receive all msgs of a virtual topic queue with memory limits

Posted by "Gary Tully (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AMQ-3375?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gary Tully updated AMQ-3375:
----------------------------

    Assignee: Gary Tully
     Summary: stomp consumer might not receive all msgs of a virtual topic queue with memory limits  (was: stomp consumer might not receive all msgs of a queue)

> stomp consumer might not receive all msgs of a virtual topic queue with memory limits
> -------------------------------------------------------------------------------------
>
>                 Key: AMQ-3375
>                 URL: https://issues.apache.org/jira/browse/AMQ-3375
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.5.0
>         Environment: stomp consumer on virtual destination 
> Tested on Ubuntu 10.10 and MacOSX using java 6.
>            Reporter: Torsten Mielke
>            Assignee: Gary Tully
>              Labels: stomp, virtualTopic
>         Attachments: stomp-testcase.tgz
>
>
> Have a testcase that connects a Java stomp consumer to a virtual destination queue and consumes a fixed amount of msgs.
> During the test I noticed that the consumer does not always receive the full amount of msgs.
> Instead the receive times out although JMX QueueSize property is greater than 0. However when trying to browse the queue using JMX, it returns null, despite the fact that not all msgs got dequeued yet (dispatch and dequeue counter < enqueue counter).
> So far I reproduced this with a stomp producer/consumer only. The producer writes msgs to a virtual topic VirtualTopic.Foo and the consumer takes msgs off the Consumer.A.VirtualTopic.Foo queue. Using JMX I noticed all msgs got moved from the virtual topic to the queue (reflected by JMX enqueue counter) but not all msgs got consumed.
> So it seems the broker lost some msgs on the way. 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (AMQ-3375) stomp consumer might not receive all msgs of a queue

Posted by "Torsten Mielke (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AMQ-3375?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Torsten Mielke updated AMQ-3375:
--------------------------------

    Attachment: stomp-testcase.tgz

Attaching a test case in JUnit format. It may take a number of test runs before this test case fails (10 < x < 20).
For a description of the test case, have a read over the class documentation in src/test/resources/org/apache/activemq/transport/stomp/StompVirtualTopicTest.java.

The test case uses an embedded broker but I have the feeling the problem is easier reproduced using an external broker with the config src/test/resources/StompVirtualTopicTest.xml. It also makes it easier to attach jconsole.

To run the test case simply call mvn test.

> stomp consumer might not receive all msgs of a queue
> ----------------------------------------------------
>
>                 Key: AMQ-3375
>                 URL: https://issues.apache.org/jira/browse/AMQ-3375
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.5.0
>         Environment: stomp consumer on virtual destination 
> Tested on Ubuntu 10.10 and MacOSX using java 6.
>            Reporter: Torsten Mielke
>              Labels: stomp, virtualTopic
>         Attachments: stomp-testcase.tgz
>
>
> Have a testcase that connects a Java stomp consumer to a virtual destination queue and consumes a fixed amount of msgs.
> During the test I noticed that the consumer does not always receive the full amount of msgs.
> Instead the receive times out although JMX QueueSize property is greater than 0. However when trying to browse the queue using JMX, it returns null, despite the fact that not all msgs got dequeued yet (dispatch and dequeue counter < enqueue counter).
> So far I reproduced this with a stomp producer/consumer only. The producer writes msgs to a virtual topic VirtualTopic.Foo and the consumer takes msgs off the Consumer.A.VirtualTopic.Foo queue. Using JMX I noticed all msgs got moved from the virtual topic to the queue (reflected by JMX enqueue counter) but not all msgs got consumed.
> So it seems the broker lost some msgs on the way. 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (AMQ-3375) stomp consumer might not receive all msgs of a queue

Posted by "Timothy Bish (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AMQ-3375?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13057380#comment-13057380 ] 

Timothy Bish commented on AMQ-3375:
-----------------------------------

A reliable way to make this test case always pass is to add the receipt request header to the final produced message and do a receive to await the response, this will ensure that all messages are read by the broker and placed on the queue.

> stomp consumer might not receive all msgs of a queue
> ----------------------------------------------------
>
>                 Key: AMQ-3375
>                 URL: https://issues.apache.org/jira/browse/AMQ-3375
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.5.0
>         Environment: stomp consumer on virtual destination 
> Tested on Ubuntu 10.10 and MacOSX using java 6.
>            Reporter: Torsten Mielke
>              Labels: stomp, virtualTopic
>         Attachments: stomp-testcase.tgz
>
>
> Have a testcase that connects a Java stomp consumer to a virtual destination queue and consumes a fixed amount of msgs.
> During the test I noticed that the consumer does not always receive the full amount of msgs.
> Instead the receive times out although JMX QueueSize property is greater than 0. However when trying to browse the queue using JMX, it returns null, despite the fact that not all msgs got dequeued yet (dispatch and dequeue counter < enqueue counter).
> So far I reproduced this with a stomp producer/consumer only. The producer writes msgs to a virtual topic VirtualTopic.Foo and the consumer takes msgs off the Consumer.A.VirtualTopic.Foo queue. Using JMX I noticed all msgs got moved from the virtual topic to the queue (reflected by JMX enqueue counter) but not all msgs got consumed.
> So it seems the broker lost some msgs on the way. 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (AMQ-3375) stomp consumer might not receive all msgs of a queue

Posted by "Timothy Bish (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AMQ-3375?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13056829#comment-13056829 ] 

Timothy Bish commented on AMQ-3375:
-----------------------------------

I can get the test to fail using the provided unit test however the problem appears to be that the socket of the StompConnection is closed before the broker has had a chance to read all the messages from the socket buffer, if you add a sleep (6 seconds on my machine) before calling close the the test passes every time.

> stomp consumer might not receive all msgs of a queue
> ----------------------------------------------------
>
>                 Key: AMQ-3375
>                 URL: https://issues.apache.org/jira/browse/AMQ-3375
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.5.0
>         Environment: stomp consumer on virtual destination 
> Tested on Ubuntu 10.10 and MacOSX using java 6.
>            Reporter: Torsten Mielke
>              Labels: stomp, virtualTopic
>         Attachments: stomp-testcase.tgz
>
>
> Have a testcase that connects a Java stomp consumer to a virtual destination queue and consumes a fixed amount of msgs.
> During the test I noticed that the consumer does not always receive the full amount of msgs.
> Instead the receive times out although JMX QueueSize property is greater than 0. However when trying to browse the queue using JMX, it returns null, despite the fact that not all msgs got dequeued yet (dispatch and dequeue counter < enqueue counter).
> So far I reproduced this with a stomp producer/consumer only. The producer writes msgs to a virtual topic VirtualTopic.Foo and the consumer takes msgs off the Consumer.A.VirtualTopic.Foo queue. Using JMX I noticed all msgs got moved from the virtual topic to the queue (reflected by JMX enqueue counter) but not all msgs got consumed.
> So it seems the broker lost some msgs on the way. 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Resolved] (AMQ-3375) stomp consumer might not receive all msgs of a virtual topic queue with memory limits

Posted by "Gary Tully (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AMQ-3375?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gary Tully resolved AMQ-3375.
-----------------------------

       Resolution: Fixed
    Fix Version/s: 5.6.0

fixed by AMQ-3434 - test case committed in rev: http://svn.apache.org/viewvc?rev=1153463&view=rev

> stomp consumer might not receive all msgs of a virtual topic queue with memory limits
> -------------------------------------------------------------------------------------
>
>                 Key: AMQ-3375
>                 URL: https://issues.apache.org/jira/browse/AMQ-3375
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.5.0
>         Environment: stomp consumer on virtual destination 
> Tested on Ubuntu 10.10 and MacOSX using java 6.
>            Reporter: Torsten Mielke
>            Assignee: Gary Tully
>              Labels: stomp, virtualTopic
>             Fix For: 5.6.0
>
>         Attachments: stomp-testcase.tgz
>
>
> Have a testcase that connects a Java stomp consumer to a virtual destination queue and consumes a fixed amount of msgs.
> During the test I noticed that the consumer does not always receive the full amount of msgs.
> Instead the receive times out although JMX QueueSize property is greater than 0. However when trying to browse the queue using JMX, it returns null, despite the fact that not all msgs got dequeued yet (dispatch and dequeue counter < enqueue counter).
> So far I reproduced this with a stomp producer/consumer only. The producer writes msgs to a virtual topic VirtualTopic.Foo and the consumer takes msgs off the Consumer.A.VirtualTopic.Foo queue. Using JMX I noticed all msgs got moved from the virtual topic to the queue (reflected by JMX enqueue counter) but not all msgs got consumed.
> So it seems the broker lost some msgs on the way. 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira