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

qpid-dispatch git commit: DISPATCH-1136: Don't drop presettled message at head of list

Repository: qpid-dispatch
Updated Branches:
  refs/heads/master 4031dddee -> 430efa077


DISPATCH-1136: Don't drop presettled message at head of list

This message may have had bytes go over the wire already and dropping
it now may corrupt the link data stream.


Project: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/commit/430efa07
Tree: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/tree/430efa07
Diff: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/diff/430efa07

Branch: refs/heads/master
Commit: 430efa0777c87289f5b59a83d0d36cab7647adac
Parents: 4031ddd
Author: Chuck Rolke <cr...@redhat.com>
Authored: Tue Oct 2 10:43:54 2018 -0400
Committer: Chuck Rolke <cr...@redhat.com>
Committed: Tue Oct 2 10:43:54 2018 -0400

----------------------------------------------------------------------
 src/router_core/forwarder.c      | 10 ++++++++++
 tests/system_tests_one_router.py |  4 ++--
 2 files changed, 12 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/430efa07/src/router_core/forwarder.c
----------------------------------------------------------------------
diff --git a/src/router_core/forwarder.c b/src/router_core/forwarder.c
index c5e86f6..80f9b07 100644
--- a/src/router_core/forwarder.c
+++ b/src/router_core/forwarder.c
@@ -150,6 +150,16 @@ qdr_delivery_t *qdr_forward_new_delivery_CT(qdr_core_t *core, qdr_delivery_t *in
 static void qdr_forward_drop_presettled_CT_LH(qdr_core_t *core, qdr_link_t *link)
 {
     qdr_delivery_t *dlv = DEQ_HEAD(link->undelivered);
+
+    if (!dlv)
+        return;
+    //
+    // Remove leading delivery from consideration.
+    // Parts of this message may have been transmitted already and dropping
+    // it may corrupt outbound data.
+    //
+    dlv = DEQ_NEXT(dlv);
+
     qdr_delivery_t *next;
 
     while (dlv) {

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/430efa07/tests/system_tests_one_router.py
----------------------------------------------------------------------
diff --git a/tests/system_tests_one_router.py b/tests/system_tests_one_router.py
index 94ccd36..dd7cd31 100644
--- a/tests/system_tests_one_router.py
+++ b/tests/system_tests_one_router.py
@@ -2797,8 +2797,8 @@ class PresettledOverflowTest(MessagingHandler):
 
                 for result in out.results:
                     if result[5] == 'out' and 'balanced.PresettledOverflow' in result[6]:
-                        if result[16] != 250:
-                            self.error = "Expected 250 dropped presettled deliveries but got " + str(result[16])
+                        if result[16] != 249:
+                            self.error = "Expected 249 dropped presettled deliveries but got " + str(result[16])
             self.conn.close()
             self.timer.cancel()
 


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