[ 
https://issues.apache.org/jira/browse/DISPATCH-2327?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17490341#comment-17490341
 ] 

ASF GitHub Bot commented on DISPATCH-2327:
------------------------------------------

jiridanek commented on a change in pull request #1512:
URL: https://github.com/apache/qpid-dispatch/pull/1512#discussion_r803827248



##########
File path: tests/system_tests_multi_tenancy.py
##########
@@ -229,6 +231,17 @@ def 
test_16_two_router_anonymous_sender_tenant_on_both(self):
         test.run()
         self.assertIsNone(test.error)
 
+    def _cleanup_link_routes(func):

Review comment:
       The 'traditional' way of using `unittest` would be to do your `setUp()` 
and `tearDown()` in these two methods. (With classes being understood as a way 
to group together tests that share setup and teardown.)
   
   I'd probably try to put the teardown into `LinkRouteTest` itself... but that 
does not have access to `self.routers`, so it is not such a good idea. Maybe 
add method `def tearDown(routers)` to it and call it in every test...
   
   Decorators are too much magic for my simple tastes, I guess.
   
   It's a matter of preference. The decorator is not too hard to understand... 
And if I had unlimited time, enthusiasm, and money to redesign this test "the 
best way", I would not actually know what to do with it right away... So, lgtm, 
just go ahead, I guess?




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> system_tests_multi_tenancy flaky link route test failures
> ---------------------------------------------------------
>
>                 Key: DISPATCH-2327
>                 URL: https://issues.apache.org/jira/browse/DISPATCH-2327
>             Project: Qpid Dispatch
>          Issue Type: Bug
>          Components: Tests
>    Affects Versions: 1.18.0
>            Reporter: Ken Giusti
>            Assignee: Ken Giusti
>            Priority: Major
>             Fix For: 1.19.0
>
>
> Very occasionally one of the linkRoute tests in the 
> system_tests_multi_tenancy.py ctests will fail:
> 38: FAIL: test_22_two_router_link_route_targeted_no_tenant 
> (system_tests_multi_tenancy.RouterTest)                                       
>          
> 38: ----------------------------------------------------------------------    
>                                                      
> 38: Traceback (most recent call last):                                        
>                                                
> 38:   File "/home/kgiusti/work/dispatch/qpid-dispatch/test 
> /system_tests_multi_tenancy.py", line 290, in 
> test_22_two_router_link_route_targeted_no_tenant                              
>                                  
> 38:     self.assertIsNone(test.error)                                         
>                                                                     
> 38: AssertionError: 'Timeout Expired: n_sent=0 n_rcvd=0 n_settled=0' is not 
> None                                                                  
> Examining the router logs it appears as if the attempt to use the link route 
> is rejected with a "no route" error.
> I believe the problem is that each test uses the same link route configured 
> address.  Each test starts by establishing the route container connection 
> then polls the routers waiting for the link route address to propagate.  Once 
> the poll succeeds the test starts.
> IIUC what is happening is that at the end of each test the link route address 
> may still exist in the route tables - it has not been totally removed.  This 
> causes the next test's poll to immediately succeed before the test's link 
> route has been properly propagated.  This results in the failure if the new 
> link route doesn't establish itself before traffic is sent.
> The fix is to have each test wait for all link route addresses to be removed 
> from the routing tables before the test ends.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

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

Reply via email to