This is an automated email from the ASF dual-hosted git repository.
chug 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 a383172 DISPTACH-1708: fallback dest releases phase 0 msgs received
by fallback
a383172 is described below
commit a38317212d5ab54742a44c9b376bfa1fe75aae37
Author: Chuck Rolke <[email protected]>
AuthorDate: Wed Jul 22 16:08:56 2020 -0400
DISPTACH-1708: fallback dest releases phase 0 msgs received by fallback
Add count of those released messages.
This closes #775
---
tests/system_tests_fallback_dest.py | 28 ++++++++++++++++++++--------
1 file changed, 20 insertions(+), 8 deletions(-)
diff --git a/tests/system_tests_fallback_dest.py
b/tests/system_tests_fallback_dest.py
index 2771144..c70c226 100644
--- a/tests/system_tests_fallback_dest.py
+++ b/tests/system_tests_fallback_dest.py
@@ -589,9 +589,11 @@ class SwitchoverTest(MessagingHandler):
self.n_rel = 0
self.phase = 0
self.tx_seq = 0
+ self.local_rel = 0
def timeout(self):
- self.error = "Timeout Expired - n_tx=%d, n_rx=%d, n_rel=%d, phase=%d"
% (self.n_tx, self.n_rx, self.n_rel, self.phase)
+ self.error = "Timeout Expired - n_tx=%d, n_rx=%d, n_rel=%d, phase=%d,
local_rel=%d" % \
+ (self.n_tx, self.n_rx, self.n_rel, self.phase,
self.local_rel)
self.sender_conn.close()
self.primary_conn.close()
self.fallback_conn.close()
@@ -633,13 +635,23 @@ class SwitchoverTest(MessagingHandler):
self.send()
def on_message(self, event):
- self.n_rx += 1
- if self.n_rx == self.count:
- if self.phase == 0:
- self.phase = 1
- self.primary_receiver.close()
- else:
- self.fail(None)
+ if not (self.phase == 0 and event.receiver == self.fallback_receiver):
+ # Phase 0 message over primary receiver. Phase 1 can come in only
on primary.
+ self.n_rx += 1
+ if self.n_rx == self.count:
+ if self.phase == 0:
+ self.phase = 1
+ self.primary_receiver.close()
+ else:
+ self.fail(None)
+ else:
+ # Phase 0 message over fallback receiver. This may happen because
+ # primary receiver is on a distant router and the fallback
receiver is local.
+ # Release the message to keep trying until the primary receiver
kicks in.
+ self.release(event.delivery)
+ self.n_rel += 1
+ self.n_tx -= 1
+ self.local_rel += 1
def on_released(self, event):
self.n_rel += 1
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]