qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Robbie Gemmell (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DISPATCH-962) links established to 'unavailable' addresses are not refused correctly
Date Thu, 12 Apr 2018 10:30:00 GMT

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

Robbie Gemmell commented on DISPATCH-962:
-----------------------------------------

Thanks for the change. I tried it out and it gets things failing in the way expected for the
JMS client, throwing an exception from calls to create the producer/consumer as its now known
the attach represents a failure and imminent detach.

I did note that the change now nulls both source and target though, whereas I'd only expect
one of them to be null (the source when clients establish a consumer, and target when they
establish a producer) if both were non-null in the initial attach, since the router only defines
one. The JMS client doesn't care about that behaviour currently, but some peers could.
{noformat}
Attach{name='qpid-jms:receiver:ID:6cae704e-93f6-4313-801c-8c797615f00a:1:1:1:queue', handle=0,
role=RECEIVER, sndSettleMode=UNSETTLED, rcvSettleMode=FIRST, source=Source{address='queue',
durable=NONE, expiryPolicy=LINK_DETACH, timeout=0, dynamic=false, dynamicNodeProperties=null,
distributionMode=null, filter=null, defaultOutcome=Modified{deliveryFailed=true, undeliverableHere=null,
messageAnnotations=null}, outcomes=[amqp:accepted:list, amqp:rejected:list, amqp:released:list,
amqp:modified:list], capabilities=[queue]}, target=Target{address='null', durable=NONE, expiryPolicy=SESSION_END,
timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}, unsettled=null,
incompleteUnsettled=false, initialDeliveryCount=null, maxMessageSize=null, offeredCapabilities=null,
desiredCapabilities=null, properties=null}
[750316387:1] <- Attach{name='qpid-jms:receiver:ID:6cae704e-93f6-4313-801c-8c797615f00a:1:1:1:queue',
handle=0, role=SENDER, sndSettleMode=MIXED, rcvSettleMode=FIRST, source=null, target=null,
unsettled=null, incompleteUnsettled=false, initialDeliveryCount=0, maxMessageSize=0, offeredCapabilities=null,
desiredCapabilities=null, properties=null}
{noformat}

> links established to 'unavailable' addresses are not refused correctly
> ----------------------------------------------------------------------
>
>                 Key: DISPATCH-962
>                 URL: https://issues.apache.org/jira/browse/DISPATCH-962
>             Project: Qpid Dispatch
>          Issue Type: Bug
>          Components: Container
>    Affects Versions: 1.0.0, 1.0.1, 1.1.0
>            Reporter: Robbie Gemmell
>            Assignee: Ted Ross
>            Priority: Major
>             Fix For: 1.1.0
>
>
> When setting an address as unavailable (via defaultDistribution: unavailable from DISPATCH-803)
the router doesn't refuse the links to it in the manner the spec indicates it should.
> To indicate a link is being refused, the spec describes that the attach response should
contain a null target/source as appropriate, essentially indicating to the peer that the detach
will follow due to the error, [http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-transport-v1.0-os.html#doc-idp315568],
Figure 2.33: Refusing a Link.
> Currently this does not happen, e.g:
> Creating a sending link, response attach with non-null Target:
> {noformat}
> [750316387:1] -> Attach{name='qpid-jms:sender:ID:07e5feb4-d047-4d55-90e4-e67887f9a06a:1:1:1:queue',
handle=0, role=SENDER, sndSettleMode=UNSETTLED, rcvSettleMode=FIRST, source=Source{address='ID:07e5feb4-d047-4d55-90e4-e67887f9a06a:1:1:1',
durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null,
distributionMode=null, filter=null, defaultOutcome=null, outcomes=[amqp:accepted:list, amqp:rejected:list,
amqp:released:list, amqp:modified:list], capabilities=null}, target=Target{address='queue',
durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null,
capabilities=[queue]}, unsettled=null, incompleteUnsettled=false, initialDeliveryCount=0,
maxMessageSize=null, offeredCapabilities=null, desiredCapabilities=[DELAYED_DELIVERY], properties=null}
> [750316387:1] <- Attach{name='qpid-jms:sender:ID:07e5feb4-d047-4d55-90e4-e67887f9a06a:1:1:1:queue',
handle=0, role=RECEIVER, sndSettleMode=MIXED, rcvSettleMode=FIRST, source=Source{address='null',
durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null,
distributionMode=null, filter=null, defaultOutcome=null, outcomes=null, capabilities=null},
target=Target{address='null', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false,
dynamicNodeProperties=null, capabilities=null}, unsettled=null, incompleteUnsettled=false,
initialDeliveryCount=0, maxMessageSize=0, offeredCapabilities=null, desiredCapabilities=null,
properties=null}
> {noformat}
> Creating a receiving link, response attach with non-null Source:
> {noformat}
> [59324032:1] -> Attach{name='qpid-jms:receiver:ID:30b1b1c9-316b-4be1-9944-15b5822a6500:1:1:1:queue',
handle=0, role=RECEIVER, sndSettleMode=UNSETTLED, rcvSettleMode=FIRST, source=Source{address='queue',
durable=NONE, expiryPolicy=LINK_DETACH, timeout=0, dynamic=false, dynamicNodeProperties=null,
distributionMode=null, filter=null, defaultOutcome=Modified{deliveryFailed=true, undeliverableHere=null,
messageAnnotations=null}, outcomes=[amqp:accepted:list, amqp:rejected:list, amqp:released:list,
amqp:modified:list], capabilities=[queue]}, target=Target{address='null', durable=NONE, expiryPolicy=SESSION_END,
timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}, unsettled=null,
incompleteUnsettled=false, initialDeliveryCount=null, maxMessageSize=null, offeredCapabilities=null,
desiredCapabilities=null, properties=null}
> [59324032:1] <- Attach{name='qpid-jms:receiver:ID:30b1b1c9-316b-4be1-9944-15b5822a6500:1:1:1:queue',
handle=0, role=SENDER, sndSettleMode=MIXED, rcvSettleMode=FIRST, source=Source{address='null',
durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null,
distributionMode=null, filter=null, defaultOutcome=null, outcomes=null, capabilities=null},
target=Target{address='null', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false,
dynamicNodeProperties=null, capabilities=null}, unsettled=null, incompleteUnsettled=false,
initialDeliveryCount=0, maxMessageSize=0, offeredCapabilities=null, desiredCapabilities=null,
properties=null}
> {noformat}
> The links are detached after this, but the non-null terminus removes the hint to the
peer that it is coming.



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

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


Mime
View raw message