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