You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kg...@apache.org on 2021/05/03 23:11:56 UTC

[qpid-dispatch] branch 1.16.x created (now c27598c)

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

kgiusti pushed a change to branch 1.16.x
in repository https://gitbox.apache.org/repos/asf/qpid-dispatch.git.


      at c27598c  DISPATCH-2091: Ignore RX window when raw connection is write_closed

This branch includes the following new commits:

     new 19be68d  DISPATCH-2089: [tools] Scraper must html-escape transfer payload
     new 0956b20  DISPATCH-2090: [tools] Scraper handles non-terminal dispositions
     new 9d7a1f3  DISPATCH-2088: Free message_stream_data objects on connection thread
     new c27598c  DISPATCH-2091: Ignore RX window when raw connection is write_closed

The 4 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


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


[qpid-dispatch] 02/04: DISPATCH-2090: [tools] Scraper handles non-terminal dispositions

Posted by kg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 0956b2097a12ab2c74b441c8f4d9546b5dfda93e
Author: Chuck Rolke <ch...@apache.org>
AuthorDate: Wed Apr 28 10:18:49 2021 -0400

    DISPATCH-2090: [tools] Scraper handles non-terminal dispositions
    
    Non-terminal dispositions were added to effect TCP adaptor flow control
    in the 1.16 release. Scraper needs adjustments to handle them.
    
     * Report negative disposition delta times as 0 seconds
     * Allow non-terminal dispositions to be overwritten without logging an error
---
 tools/scraper/amqp_detail.py | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/tools/scraper/amqp_detail.py b/tools/scraper/amqp_detail.py
index 8a2de9b..0b2c3cd 100755
--- a/tools/scraper/amqp_detail.py
+++ b/tools/scraper/amqp_detail.py
@@ -449,6 +449,9 @@ class AllDetails():
         :param t0:
         :return:
         """
+        if ttest < t0:
+            # Never return negative deltas
+            return "0.000000"
         delta = ttest - t0
         t = float(delta.seconds) + float(delta.microseconds) / 1000000.0
         return "%0.06f" % t
@@ -681,8 +684,18 @@ class AllDetails():
                         for sdid in range(int(splf.data.first), (int(splf.data.last) + 1)):
                             did = str(sdid)
                             if did in sdispmap:
-                                sys.stderr.write("ERROR: Delivery ID collision in disposition map. connid:%s, \n" %
-                                                 (splf.data.conn_id))
+                                old_splf = sdispmap[did]
+                                if "state=@received" in old_splf.line:
+                                    # Existing disposition is non-terminal.
+                                    # Don't complain when it is overwritten by another non-terminal
+                                    # or by a terminal disposition.
+                                    pass
+                                else:
+                                    # Current state is terminal disposition. Complain when overwritten.
+                                    sys.stderr.write("ERROR: Delivery ID collision in disposition map. connid:%s, \n" %
+                                                     (splf.data.conn_id))
+                                    sys.stderr.write("  old: %s, %s\n" % (old_splf.fid, old_splf.line))
+                                    sys.stderr.write("  new: %s, %s\n" % (splf.fid, splf.line))
                             sdispmap[did] = splf
 
     def rollup_disposition_counts(self, state, conn, sess, link):

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


[qpid-dispatch] 04/04: DISPATCH-2091: Ignore RX window when raw connection is write_closed

Posted by kg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit c27598ce184814b3dc427d3fd21abec124a4441b
Author: Chuck Rolke <ch...@apache.org>
AuthorDate: Fri Apr 30 10:13:25 2021 -0400

    DISPATCH-2091: Ignore RX window when raw connection is write_closed
    
    When TCP adaptor receives an EOS in the incoming streaming link then
    it calls pn_raw_write_close to the corresponding PN raw connection.
    This sends a FIN to the raw connection peer.
    
    If the adaptor then continues to honor the RX window closure then it
    never reads data from the raw connection that now has a close in
    progress. Further, when the incoming TCP window is full then the
    raw connection never returns the client's FIN and the connection
    is stuck open.
    
    This patch causes the adaptor to override backpressure flow control
    and to keep reading from a raw connection after a write_close has been
    effected.
    
    This closes #1177
    
    (cherry picked from commit 7ef0a0f0262a830df35d3bd39b9346c5db56940b)
---
 src/adaptors/tcp_adaptor.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/adaptors/tcp_adaptor.c b/src/adaptors/tcp_adaptor.c
index 4a260bb..e75f1ee 100644
--- a/src/adaptors/tcp_adaptor.c
+++ b/src/adaptors/tcp_adaptor.c
@@ -231,7 +231,7 @@ static int handle_incoming_raw_read(qdr_tcp_connection_t *conn, qd_buffer_list_t
     int free_count = 0;
     const bool was_open = conn->bytes_unacked < TCP_MAX_CAPACITY;
 
-    while ((count + conn->bytes_unacked < TCP_MAX_CAPACITY)
+    while ((conn->raw_closed_write || count + conn->bytes_unacked < TCP_MAX_CAPACITY)
            && (n = pn_raw_connection_take_read_buffers(conn->pn_raw_conn, raw_buffers, READ_BUFFERS)) ) {
 
         for (size_t i = 0; i < n && raw_buffers[i].bytes; ++i) {

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


[qpid-dispatch] 01/04: DISPATCH-2089: [tools] Scraper must html-escape transfer payload

Posted by kg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 19be68d5e164d09da210bbf01ec392e5ccaa8285
Author: Chuck Rolke <ch...@apache.org>
AuthorDate: Tue Apr 27 17:39:44 2021 -0400

    DISPATCH-2089: [tools] Scraper must html-escape transfer payload
    
    (cherry picked from commit 4da68495bf88d33898ab63d0d3095ffc0ca28046)
---
 tools/scraper/parser.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/scraper/parser.py b/tools/scraper/parser.py
index e7ca2bf..2bff233 100755
--- a/tools/scraper/parser.py
+++ b/tools/scraper/parser.py
@@ -762,7 +762,7 @@ class ParsedLogLine(object):
                 self.highlighted("more", res.transfer_more, common.color_of("more")),
                 self.highlighted("resume", res.transfer_resume, common.color_of("aborted")),
                 self.highlighted("aborted", res.transfer_aborted, common.color_of("aborted")),
-                showdat, spl[-SEQUENCE_TRANSFER_SIZE:],
+                showdat, common.html_escape(spl[-SEQUENCE_TRANSFER_SIZE:]),
                 res.transfer_size)
             res.sdorg_str = "%s %s (%s) %s (%s%s%s%s)\\n%s" % (
                 res.name, res.channel_handle, res.delivery_id, res.transfer_size,

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


[qpid-dispatch] 03/04: DISPATCH-2088: Free message_stream_data objects on connection thread

Posted by kg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 9d7a1f39eff3d0f8d1dc86b836d3a43c4664c7e6
Author: Chuck Rolke <ch...@apache.org>
AuthorDate: Thu Apr 29 15:21:15 2021 -0400

    DISPATCH-2088: Free message_stream_data objects on connection thread
    
    and not on the core thread. Move flush_outgoing_bufs call to
    handle_disconnected function.
    
    This closes #1174
    
    (cherry picked from commit 18bce61e79bd8731be0241ba04db3841159da5e5)
---
 src/adaptors/tcp_adaptor.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/adaptors/tcp_adaptor.c b/src/adaptors/tcp_adaptor.c
index ddd7409..4a260bb 100644
--- a/src/adaptors/tcp_adaptor.c
+++ b/src/adaptors/tcp_adaptor.c
@@ -452,7 +452,6 @@ static void free_qdr_tcp_connection(qdr_tcp_connection_t* tc)
     if (tc->activate_timer) {
         qd_timer_free(tc->activate_timer);
     }
-    flush_outgoing_buffs(tc);
     sys_mutex_free(tc->activation_lock);
     //proactor will free the socket
     free_qdr_tcp_connection_t(tc);
@@ -495,6 +494,8 @@ static void handle_disconnected(qdr_tcp_connection_t* conn)
         qdr_delivery_decref(tcp_adaptor->core, conn->initial_delivery, "tcp-adaptor.handle_disconnected - initial_delivery");
         conn->initial_delivery = 0;
     }
+    flush_outgoing_buffs(conn);
+
 
     //need to free on core thread to avoid deleting while in use by management agent
     qdr_action_t *action = qdr_action(qdr_del_tcp_connection_CT, "delete_tcp_connection");

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