Ken Giusti created DISPATCH-1198:
------------------------------------

             Summary: An early query of 'org.apache.qpid.dispatch.router.node' 
can crash the router
                 Key: DISPATCH-1198
                 URL: https://issues.apache.org/jira/browse/DISPATCH-1198
             Project: Qpid Dispatch
          Issue Type: Bug
          Components: Router Node
    Affects Versions: 1.4.1
            Reporter: Ken Giusti
             Fix For: 1.5.0


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)
             # TODO aconway 2015-01-29: The above check should be enough, we
             # should not advertise a remote router in managment till it is 
fully
             # 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.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to