[ https://issues.apache.org/jira/browse/DISPATCH-962?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16434586#comment-16434586 ]
Ted Ross commented on DISPATCH-962: ----------------------------------- The traces provided show that the returned attach contains terminus addresses of 'null' (as though the address were changed to the string "null"). Is this a feature of JMS tracing? When I tried to reproduce this behavior, I found that the address fields in the termini were not present (i.e. truly null). The source/target termini were, however, present. Are you arguing that the return attaches should not contain any source or target termini records in the performative? Qpid Dispatch uses the Proton-C API as follows: If an incoming attach is going to be rejected, it does not copy the remote termini to the local termini (as it would if accepting the link) and closes the link. It relies on Proton to properly issue the empty attach followed by a detach. The Proton API provides no way to nullify a source or target. If this is indeed a bug, is it not a Proton-C bug? > 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 > Affects Versions: 1.0.0, 1.0.1, 1.1.0 > Reporter: Robbie Gemmell > Assignee: Ganesh Murthy > Priority: Major > > 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-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org