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