You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Timothy Bish (JIRA)" <ji...@apache.org> on 2015/05/27 17:32:17 UTC

[jira] [Resolved] (AMQ-5413) AMQP test client delivery/redelivery anomoly

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

Timothy Bish resolved AMQ-5413.
-------------------------------
    Resolution: Fixed

Additional fix and tests added

> AMQP test client delivery/redelivery anomoly
> --------------------------------------------
>
>                 Key: AMQ-5413
>                 URL: https://issues.apache.org/jira/browse/AMQ-5413
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: AMQP, Broker
>    Affects Versions: 5.11.0
>         Environment: broker: snapshot apache-activemq-5.11-20141022.222801-124-bin.tar.gz 	
>   Wed Oct 22 22:28:02 UTC 2014
> host: Linux Fedora 19 x64
> clients: Apache Qpid C++ messaging qpid-send qpid-receive (current trunk)
> protocol: AMQP 1.0
>            Reporter: Chuck Rolke
>            Assignee: Timothy Bish
>             Fix For: 5.12.0
>
>
> Using Apache Qpid test clients qpid-send and qpid-receive ActiveMQ broker behaves differently from qpidd and I'm wondering if the difference is important.
> The test code command lines are:
> {noformat}
> qpid-send -a "chuck; {create:always}" --connection-options {protocol:amqp1.0} --sequence yes --content-string 0
> qpid-receive -a chuck -m 1 --connection-options "{protocol:amqp1.0}" --print-headers yes
> {noformat}
> When I run the tests against qpidd they send one message and receive one message every time. However against ActiveMQ 5.11 the qpid-receive does not receive the message until one of several conditions:
> * the qpid-receive command also includes "--timeout 1"
> * the qpid-receive command is repeated several, possibly dozens, of times.
> When qpidd broker is running or when activemq is running and --timeout is specified then the qpid-receive output is:
> {noformat}
> chug@FJELD ~> qpid-receive -a chuck -m 1 --connection-options "{protocol:amqp1.0}" --print-headers yes
> Properties: {sn:1, ts:1414177685195174548, x-amqp-first-acquirer:True}
> 0
> {noformat}
> However, activemq running the client twice without the timeout and once with the timeout looks like this:
> {noformat}
> chug@FJELD ~> qpid-receive -a chuck -m 1 --connection-options "{protocol:amqp1.0}" --print-headers yes
> chug@FJELD ~> qpid-receive -a chuck -m 1 --connection-options "{protocol:amqp1.0}" --print-headers yes
> chug@FJELD ~> qpid-receive -a chuck -m 1 --connection-options "{protocol:amqp1.0}" --print-headers yes --timeout 1
> Redelivered: true
> Properties: {sn:1, ts:1414178091185765136, x-amqp-delivery-count:1}
> 0
> {noformat}
> The false receive attempts make the message look like it was already delivered, hence the Redelivered: true, first-acquirer absent and the x-amqp-delivery-count setting.
> Views of the protocol interactions between the brokers and clients are here:
> http://people.apache.org/~chug/adverb_qpid_send_receive_1/
> I ran the tests twice on ActiveMQ with the tcpnodelay option turned on and off but that didn't seem to make any difference.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)