Uploaded image for project: 'AMQ Interconnect'
  1. AMQ Interconnect
  2. ENTMQIC-2162

Router crashes when detach from receiver and detach from broker arrive at the same time on a link route

XMLWordPrintable

    • Release Notes
    • -
    • Hide
      In previous versions of AMQ Interconnect, a router would crash if it received two opposing detaches on a link route. The crash was due to a race condition from one side detaching the link, and the other side attempting to forward the detach on the detached link. This issue has been fixed to prevent this type of crash from occurring. From now on, if a router receives a detach, it will prevent any other senders or receivers from attempting to forward the detach.
      Show
      In previous versions of AMQ Interconnect, a router would crash if it received two opposing detaches on a link route. The crash was due to a race condition from one side detaching the link, and the other side attempting to forward the detach on the detached link. This issue has been fixed to prevent this type of crash from occurring. From now on, if a router receives a detach, it will prevent any other senders or receivers from attempting to forward the detach.
    • Documented as Resolved Issue

      Upstream Issue: https://issues.apache.org/jira/browse/DISPATCH-1272

      A receiver attaches to the router on a link routed address which is serviced by the standalone router via a route-container connection connected to the broker.

      When the receiver and the broker send detaches at the same time, the receiver side pn_link gets freed and the router tries to forward the detach received from the broker on to this freed pn_link and crashes.

      (gdb) thread 1
      [Switching to thread 1 (LWP 8445)]
      #0  pn_data_clear (data=data@entry=0x15) at /usr/src/debug/qpid-proton-0.26.0/c/src/core/codec.c:409
      409        data->size = 0;
      (gdb) bt
      #0  pn_data_clear (data=data@entry=0x15) at /usr/src/debug/qpid-proton-0.26.0/c/src/core/codec.c:409
      #1  0x00007fb9385e1e21 in pn_data_copy (data=0x15, src=0x93dbfc0) at /usr/src/debug/qpid-proton-0.26.0/c/src/core/codec.c:2071
      #2  0x00007fb938851f89 in qdr_error_copy (from=from@entry=0x7fb91c209698, to=<optimized out>) at /usr/src/debug/qpid-dispatch-1.5.0/src/router_core/error.c:96
      #3  0x00007fb93886738b in CORE_link_detach (context=0x18185c0, link=0x7fb91c104fd8, error=0x7fb91c209698, first=<optimized out>, close=<optimized out>) at /usr/src/debug/qpid-dispatch-1.5.0/src/router_node.c:1345
      #4  0x00007fb93884d792 in qdr_connection_process (conn=0x7fb91c059f18) at /usr/src/debug/qpid-dispatch-1.5.0/src/router_core/connections.c:330
      #5  0x00007fb938833558 in writable_handler (container=0x182f6d0, container=0x182f6d0, conn=0x7fb921a96650, qd_conn=0x7fb9201f31d8) at /usr/src/debug/qpid-dispatch-1.5.0/src/container.c:332
      #6  qd_container_handle_event (container=0x182f6d0, event=event@entry=0x307aa10, conn=conn@entry=0x7fb921a96650, qd_conn=qd_conn@entry=0x7fb9201f31d8) at /usr/src/debug/qpid-dispatch-1.5.0/src/container.c:640
      #7  0x00007fb93886c4df in handle (qd_server=qd_server@entry=0x182dde0, e=e@entry=0x307aa10, pn_conn=pn_conn@entry=0x7fb921a96650, ctx=ctx@entry=0x7fb9201f31d8) at /usr/src/debug/qpid-dispatch-1.5.0/src/server.c:985
      #8  0x00007fb93886d2cf in thread_run (arg=0x182dde0) at /usr/src/debug/qpid-dispatch-1.5.0/src/server.c:1010
      

              gmurthy@redhat.com Ganesh Murthy
              rhn-support-shiggs Stephen Higgs
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: