You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by gm...@apache.org on 2020/06/10 14:44:02 UTC

[qpid-dispatch] branch master updated: DISPATCH-1675 - Delay sender creation until reply receiver is created. This closes #759.

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 ef2bcc2  DISPATCH-1675 - Delay sender creation until reply receiver is created. This closes #759.
ef2bcc2 is described below

commit ef2bcc27bdaa7c405c69395e0cdcb894298c52a1
Author: Ganesh Murthy <gm...@apache.org>
AuthorDate: Tue Jun 9 16:57:12 2020 -0400

    DISPATCH-1675 - Delay sender creation until reply receiver is created. This closes #759.
---
 tests/system_tests_stuck_deliveries.py | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/tests/system_tests_stuck_deliveries.py b/tests/system_tests_stuck_deliveries.py
index 0115870..9cc13ce 100644
--- a/tests/system_tests_stuck_deliveries.py
+++ b/tests/system_tests_stuck_deliveries.py
@@ -206,19 +206,29 @@ class DelayedSettlementTest(MessagingHandler):
     def on_start(self, event):
         self.timer          = event.reactor.schedule(TIMEOUT, TestTimeout(self))
         self.poll_timer     = None
-        self.sender_conn    = event.container.connect(self.sender_host)
         self.receiver_conn  = event.container.connect(self.receiver_host)
         self.query_conn     = event.container.connect(self.query_host)
-        self.sender         = event.container.create_sender(self.sender_conn, self.addr)
         self.receiver       = event.container.create_receiver(self.receiver_conn, self.addr)
         self.reply_receiver = event.container.create_receiver(self.query_conn, None, dynamic=True)
         self.query_sender   = event.container.create_sender(self.query_conn, "$management")
+        self.proxy          = None
 
     def on_link_opened(self, event):
         if event.receiver == self.reply_receiver:
             self.reply_addr = event.receiver.remote_source.address
             self.proxy      = MgmtMsgProxy(self.reply_addr)
 
+            # Create the sender only after the self.proxy is populated.
+            # If the sender was created in the on_start, in some cases, the on_sendable
+            # is called before the on_link_opened and the self.proxy remains empty.
+            # see DISPATCH-1675.
+            # The second error in test_04_delayed_settlement_different_edges_check_interior
+            # is caused due to the first test failure, so this fix will
+            # fix the second failure
+            self.sender_conn = event.container.connect(self.sender_host)
+            self.sender = event.container.create_sender(self.sender_conn,
+                                                        self.addr)
+
     def on_sendable(self, event):
         if event.sender == self.sender:
             while self.sender.credit > 0 and self.n_tx < self.dlv_count:
@@ -238,7 +248,7 @@ class DelayedSettlementTest(MessagingHandler):
             response = self.proxy.response(event.message)
             self.accept(event.delivery)
             self.last_stuck = response.results[0].deliveriesStuck
-            if response.results[0].deliveriesStuck == self.expected_stuck:
+            if self.last_stuck == self.expected_stuck:
                 if self.close_link:
                     self.receiver.close()
                 else:


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