You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Chuck Rolke (JIRA)" <ji...@apache.org> on 2016/11/11 18:36:58 UTC

[jira] [Created] (DISPATCH-562) Router does not forward dispositions when client detach/close is in same frame

Chuck Rolke created DISPATCH-562:
------------------------------------

             Summary: Router does not forward dispositions when client detach/close is in same frame
                 Key: DISPATCH-562
                 URL: https://issues.apache.org/jira/browse/DISPATCH-562
             Project: Qpid Dispatch
          Issue Type: Bug
          Components: Container
    Affects Versions: 0.8.0
         Environment: qpid-interop-test
$ amqp_types_test.py --sender localhost:9001 --receiver localhost:9002

            Reporter: Chuck Rolke


In this test there are two clients, two routers, and one broker.
{noformat}
[Sender] --> [Node 1/9001] --> [Broker] --> [Node 2/9002] --> [Receiver]
{noformat}

Messages are accepted successfully but sometimes they get stuck in the broker. This problem is illustrated by this AMQP stream:
{noformat}
◊  ◊◊ 5.245176  Frame 39  [::1]:40896  -> [::1]:9001  ->   init AMQP (0): (1.0.0), open [0], begin [0,null], attach [0,0] sender link_0 (source: null, target: null)
◊  ◊◊ 5.245340  Frame 41  [::1]:40896 <-  [::1]:9001 <-    init AMQP (0): (1.0.0)
◊  ◊◊ 5.245406  Frame 42  [::1]:40896 <-  [::1]:9001 <-    open [0], begin [0,0]
◊  ◊◊ 5.245409  Frame 43  [::1]:39572  -> [::1]:9002  ->   init AMQP (0): (1.0.0), open [0], begin [0,null], attach [0,0] receiver link_1 (source: null, target: null), flow [0,0] (0,10)
◊  ◊◊ 5.245476  Frame 45  [::1]:48300  -> [::1]:5672  ->   begin [0,null], attach [0,0] sender link_0 (source: null, target: null)
◊  ◊◊ 5.246329  Frame 48  [::1]:48300 <-  [::1]:5672 <-    begin [0,0], attach [0,0] receiver link_0 (source: null, target: null), flow [0,0] (0,500)
◊  ◊◊ 5.246389  Frame 50  [::1]:39572 <-  [::1]:9002 <-    init AMQP (0): (1.0.0), open [0], begin [0,0]
◊  ◊◊ 5.246464  Frame 52  [::1]:48298  -> [::1]:5672  ->   begin [0,null], attach [0,0] receiver link_1 (source: null, target: null), flow [0,0] (0,10)
◊  ◊◊ 5.246581  Frame 54  [::1]:40896 <-  [::1]:9001 <-    attach [0,0] receiver link_0 (source: null, target: null), flow [0,0] (0,500)
◊  ◊◊ 5.246878  Frame 56  [::1]:40896  -> [::1]:9001  ->   transfer [0,0] (0..4)
◊  ◊◊ 5.247085  Frame 58  [::1]:48298 <-  [::1]:5672 <-    begin [0,0], attach [0,0] sender link_1 (source: null, target: null)
◊  ◊◊ 5.247207  Frame 59  [::1]:39572 <-  [::1]:9002 <-    attach [0,0] sender link_1 (source: null, target: null)
◊  ◊◊ 5.247236  Frame 61  [::1]:48300  -> [::1]:5672  ->   transfer [0,0] (0..4)
◊  ◊◊ 5.247481  Frame 63  [::1]:48300 <-  [::1]:5672 <-    flow [0,0] (5,500), disposition [0] (receiver 0-4)
◊  ◊◊ 5.247571  Frame 64  [::1]:48298 <-  [::1]:5672 <-    transfer [0,0] (0..4)
◊  ◊◊ 5.247575  Frame 65  [::1]:40896 <-  [::1]:9001 <-    flow [0,0] (5,500), disposition [0] (receiver 0-4)
◊  ◊◊ 5.247648  Frame 67  [::1]:40896  -> [::1]:9001  ->   close [0]
◊  ◊◊ 5.247702  Frame 68  [::1]:40896 <-  [::1]:9001 <-    close [0]
◊  ◊◊ 5.250888  Frame 72  [::1]:39572 <-  [::1]:9002 <-    transfer [0,0] (0..4)
◊  ◊◊ 5.251012  Frame 74  [::1]:48300  -> [::1]:5672  ->   detach [0,0]
◊  ◊◊ 5.251075  Frame 75  [::1]:48300 <-  [::1]:5672 <-    detach [0,0]
◊  ◊◊ 5.251161  Frame 76  [::1]:39572  -> [::1]:9002  ->   disposition [0] (receiver 0-4), detach [0,0], close [0]
◊  ◊◊ 5.251231  Frame 77  [::1]:39572 <-  [::1]:9002 <-    close [0]
◊  ◊◊ 5.251235  Frame 78  [::1]:48298  -> [::1]:5672  ->   detach [0,0]
◊  ◊◊ 5.251540  Frame 82  [::1]:48298 <-  [::1]:5672 <-    disposition [0] (sender 0-0), disposition [0] (sender 1-1), disposition [0] (sender 2-2), disposition [0] (sender 3-3), disposition [0] (sender 4-4), detach [0,0]
{noformat}

This trace is from a message routing scenario with:

* Sender client (port 40896) connects to routerA (port 9001)
* Receiver client (port 39572) connects to routerB (port 9002)
* RouterA (port 48300) connects to Qpidd broker (port 5672)
* RouterB (port 48298) connects to Qpidd broker (port 5672)

Note that the router-broker connections are long lived and don't start or stop in this trace.

* Frames 39..68 include link setup and the complete transfer of frames from the sender.
* Frame 72 has the transfer of 5 messages to the receiver client.
* Frames 74..75 is RouterA detaching the clients sender link to the broker
* Frame 76 is the receiver sending accepted dispositions for all five frames to routerA.
           Note that this frame also has the link detach and connection close.
* Frame 77 is routerA closing the connection to the receiver client.
* Frame 78 is routerA detaching the receiver's link to the broker.
* Frame 86 is the broker sending back five dispositions with Settled=true but not Accepted. The messages remain in the broker. The broker also closes the link.

The issue is that routerA did not forward the receiver client's dispositions in Frame 76 to the broker but just detached the link.
{noformat}





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

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