This is an automated email from the ASF dual-hosted git repository.

gmurthy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/qpid-dispatch.git


The following commit(s) were added to refs/heads/master by this push:
     new b08babc  DISPATCH-1408 - Additional fix. Make sure you send the exact 
number of messages and send them only once
b08babc is described below

commit b08babc21637ef99af60da893837c5b40c8c0ceb
Author: Ganesh Murthy <gmur...@apache.org>
AuthorDate: Tue Oct 1 11:44:01 2019 -0400

    DISPATCH-1408 - Additional fix. Make sure you send the exact number of 
messages and send them only once
---
 tests/system_tests_distribution.py | 53 +++++++++++++++++++-------------------
 1 file changed, 27 insertions(+), 26 deletions(-)

diff --git a/tests/system_tests_distribution.py 
b/tests/system_tests_distribution.py
index ea1f122..1acf5e4 100644
--- a/tests/system_tests_distribution.py
+++ b/tests/system_tests_distribution.py
@@ -2336,6 +2336,10 @@ class ClosestTest ( MessagingHandler ):
         self.addr_check_receiver.flow(100)
         self.addr_check_sender   = event.container.create_sender ( self.cnx_1, 
"$management" )
 
+        self.m_sent_1 = False
+        self.m_sent_2 = False
+        self.m_sent_3 = False
+
 
     def on_link_opened(self, event):
         if event.receiver == self.addr_check_receiver:
@@ -2343,27 +2347,6 @@ class ClosestTest ( MessagingHandler ):
             self.addr_checker = AddressChecker ( 
self.addr_check_receiver.remote_source.address )
             self.addr_check()
 
-    def on_sendable ( self, event ):
-        # Fix for DISPATCH-1408 - Make sure that the correct sender  is 
sending the messages to self.dest
-        if event.sender == self.sender and self.n_sent_1 < self.one_third and 
self.send_on_sendable:
-            msg = Message ( body     = "Hello, closest.",
-                            address  = self.dest)
-            event.sender.send ( msg )
-            self.n_sent_1 += 1
-
-            if self.n_sent_1 == self.one_third:
-                # Henceforth, we will not be using on_sendable to send 
messages.
-                # Look at on_link_closed
-                self.send_on_sendable = False
-
-    def send_messages(self):
-        while self.n_sent_1 < self.one_third:
-            msg = Message ( body     = "Hello, closest.",
-                            address  = self.dest)
-            self.sender.send ( msg )
-            self.n_sent_1 += 1
-
-
     def on_message ( self, event ):
         if event.receiver == self.addr_check_receiver:
             # This is a response to one of my address-readiness checking 
messages.
@@ -2376,6 +2359,14 @@ class ClosestTest ( MessagingHandler ):
                     # "No Path To Destination" error.
                     self.sender = event.container.create_sender ( 
self.send_cnx, self.dest )
 
+                    if not self.m_sent_1:
+                        self.m_sent_1 = True
+                        while self.n_sent_1 < self.one_third:
+                            msg = Message(body="Hello, closest.",
+                                          address=self.dest)
+                            self.sender.send(msg)
+                            self.n_sent_1 += 1
+
                     # And we can quit checking.
                     if self.addr_check_timer:
                         self.addr_check_timer.cancel()
@@ -2386,7 +2377,14 @@ class ClosestTest ( MessagingHandler ):
                     self.addr_check_timer = event.reactor.schedule(0.25, 
AddressCheckerTimeout(self))
             else:
                 if response.status_code == 200 and response.subscriberCount == 
0 and response.remoteCount == 1:
-                    self.send_messages()
+                    if not self.m_sent_2:
+                        self.m_sent_2 = True
+                        while self.n_sent_2 < self.one_third:
+                            msg = Message(body="Hello, closest.",
+                                          address=self.dest)
+                            self.sender.send(msg)
+                            self.n_sent_2 += 1
+
                     if self.addr_check_timer:
                         self.addr_check_timer.cancel()
                         self.addr_check_timer = None
@@ -2454,9 +2452,13 @@ class ClosestTest ( MessagingHandler ):
                 self.recv_1_a_closed = True
             if event.receiver == self.recv_1_b:
                 self.recv_1_b_closed = True
-            if self.recv_1_a_closed and self.recv_1_b_closed:
-                self.n_sent_1 = 0
-                self.send_messages()
+            if self.recv_1_a_closed and self.recv_1_b_closed and not 
self.m_sent_3:
+                self.m_sent_3 = True
+                while self.n_sent_3 < self.one_third:
+                    msg = Message(body="Hello, closest.",
+                                  address=self.dest)
+                    self.sender.send(msg)
+                    self.n_sent_3 += 1
 
         if event.receiver == self.recv_2_a or event.receiver == self.recv_2_b:
             if event.receiver == self.recv_2_a:
@@ -2464,7 +2466,6 @@ class ClosestTest ( MessagingHandler ):
             if event.receiver == self.recv_2_b:
                 self.recv_2_b_closed = True
             if self.recv_2_a_closed and self.recv_2_b_closed:
-                self.n_sent_1 = 0
                 self.first_check = False
                 self.addr_check()
 


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

Reply via email to