You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@qpid.apache.org by CLIVE <cl...@ckjltd.co.uk> on 2015/05/13 23:21:32 UTC

0.32 address string problem with life time of bindings created in link construct

Hi all,

I have been running the C++ Broker ( version 0.32  on CentOS 6.6) for a 
while and just noticed a potential issue with the link address string 
construct

If I run the following commands in separate terminals

 >> ./qpidd --auth no
 >> ./drain -f 
'queue_1;{create:always,link:{x-bindings:[{exchange:amq.topic,key:ben}]}}'
 >> ./drain -f 
'queue_1;{create:always,link:{x-bindings:[{exchange:amq.topic,key:bill}]}}'

I correctly see the following when I run qpid-config

 >> qpid-config -r queues
Queue 'queue_1'
     bind [queue_1] => ''
     bind [ben] => amq.topic
     bind [bill]  => amq.topic

But if I then terminate the drain process that applied the bill binding, 
I would expect this binding to be removed as its been set in the link 
section (rather than a node section).

But for some reason when I re-run qpid-config the bill binding is still 
being reported against queue_1.

 >> qpid-config -r queues
Queue 'queue_1'
     bind [queue_1] => ''
     bind [ben] => amq.topic
     bind [bill]  => amq.topic

In fact if I stop both drain processes the two bindings still remain on 
the queue.

I was sure that the bindings for the link should be scoped to the life 
of the receiver in question (i.e. the logical link to/from the node).

Am I missing something?  (I am sure this worked prior to 0.32)







---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
For additional commands, e-mail: users-help@qpid.apache.org


Re: 0.32 address string problem with life time of bindings created in link construct

Posted by Gordon Sim <gs...@redhat.com>.
On 05/13/2015 10:21 PM, CLIVE wrote:
> Hi all,
>
> I have been running the C++ Broker ( version 0.32  on CentOS 6.6) for a
> while and just noticed a potential issue with the link address string
> construct
>
> If I run the following commands in separate terminals
>
>  >> ./qpidd --auth no
>  >> ./drain -f
> 'queue_1;{create:always,link:{x-bindings:[{exchange:amq.topic,key:ben}]}}'
>  >> ./drain -f
> 'queue_1;{create:always,link:{x-bindings:[{exchange:amq.topic,key:bill}]}}'
>
> I correctly see the following when I run qpid-config
>
>  >> qpid-config -r queues
> Queue 'queue_1'
>      bind [queue_1] => ''
>      bind [ben] => amq.topic
>      bind [bill]  => amq.topic
>
> But if I then terminate the drain process that applied the bill binding,
> I would expect this binding to be removed as its been set in the link
> section (rather than a node section).

Unfortunately the emulation of a 1.0 model over 0-10 is not perfect. In 
AMQP 0-10 the client establishes bindings and there is no concept of 
auto-deleted bindings or bindings with an implicit lifecycle distinct 
from the exchange and queue they join.

So when the client is killed, and does not explicitly close the link, it 
is unable to unbind and the broker has no basis from the 0-10 protocol 
to infer that it should delete the binding.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
For additional commands, e-mail: users-help@qpid.apache.org


Re: 0.32 address string problem with life time of bindings created in link construct

Posted by Gordon Sim <gs...@redhat.com>.
On 05/13/2015 10:58 PM, Chuck Rolke wrote:
> If drain closes normally (./drain -t 120 ...; wait for timeout) then the bindings get cleaned up.
> Please file a jira describing this issue.

It is expected behaviour I'm afraid. A fix would require some extension 
to the 0-10 protocol to tie the binding to the life of a session.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
For additional commands, e-mail: users-help@qpid.apache.org


Re: 0.32 address string problem with life time of bindings created in link construct

Posted by Chuck Rolke <cr...@redhat.com>.
If drain closes normally (./drain -t 120 ...; wait for timeout) then the bindings get cleaned up.
Please file a jira describing this issue.

----- Original Message -----
> From: "CLIVE" <cl...@ckjltd.co.uk>
> To: users@qpid.apache.org
> Sent: Wednesday, May 13, 2015 5:21:32 PM
> Subject: 0.32 address string problem with life time of bindings created in link construct
> 
> Hi all,
> 
> I have been running the C++ Broker ( version 0.32  on CentOS 6.6) for a
> while and just noticed a potential issue with the link address string
> construct
> 
> If I run the following commands in separate terminals
> 
>  >> ./qpidd --auth no
>  >> ./drain -f
> 'queue_1;{create:always,link:{x-bindings:[{exchange:amq.topic,key:ben}]}}'
>  >> ./drain -f
> 'queue_1;{create:always,link:{x-bindings:[{exchange:amq.topic,key:bill}]}}'
> 
> I correctly see the following when I run qpid-config
> 
>  >> qpid-config -r queues
> Queue 'queue_1'
>      bind [queue_1] => ''
>      bind [ben] => amq.topic
>      bind [bill]  => amq.topic
> 
> But if I then terminate the drain process that applied the bill binding,
> I would expect this binding to be removed as its been set in the link
> section (rather than a node section).
> 
> But for some reason when I re-run qpid-config the bill binding is still
> being reported against queue_1.
> 
>  >> qpid-config -r queues
> Queue 'queue_1'
>      bind [queue_1] => ''
>      bind [ben] => amq.topic
>      bind [bill]  => amq.topic
> 
> In fact if I stop both drain processes the two bindings still remain on
> the queue.
> 
> I was sure that the bindings for the link should be scoped to the life
> of the receiver in question (i.e. the logical link to/from the node).
> 
> Am I missing something?  (I am sure this worked prior to 0.32)
> 
> 
> 
> 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
> For additional commands, e-mail: users-help@qpid.apache.org
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
For additional commands, e-mail: users-help@qpid.apache.org