Uploaded image for project: 'Qpid Dispatch'
  1. Qpid Dispatch
  2. DISPATCH-1198

An early query of 'org.apache.qpid.dispatch.router.node' can crash the router

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.4.1
    • Fix Version/s: 1.5.0
    • Component/s: Router Node
    • Labels:
      None

      Description

      During a debug session I modified the test script system_test.py in the following way (don't ask why - it's irrelevant):

      diff --git a/tests/system_test.py b/tests/system_test.py
      index d268671b..c007b3d3 100755
      — a/tests/system_test.py
      +++ b/tests/system_test.py
      @@ -486,7 +486,8 @@ class Qdrouterd(Process):

      def is_router_connected(self, router_id, **retry_kwargs):
      try:

      • self.management.read(identity="router.node/%s" % router_id)
        + self.management.query(type='org.apache.qpid.dispatch.router.node')
        + #self.management.read(identity="router.node/%s" % router_id)
      1. TODO aconway 2015-01-29: The above check should be enough, we
      2. should not advertise a remote router in managment till it is fully
      3. connected. However we still get a race where the router is not

      This change resulted in an assert being hit in the forwarder (note: build with -DCMAKE_BUILD_TYPE=Debug) when running the system_tests_two_routers test (possibly others).

      Analysis:

      The query is causing a qdr_address_t entry for amqp:/_topo/0/<router>/qdrouterd to be added to the routing table with treatment QD_TREATMENT_ANYCAST_BALANCED. Control messages must not use this treatment and the assert tests for it.

      Hypothesis:

      The query causes the 'R<router>' to be looked up before the other router has been established. This causes a new address entry with the default treatment to be created.

        Attachments

          Activity

            People

            • Assignee:
              tross Ted Ross
              Reporter:
              kgiusti Ken Giusti
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: