[qpid-proton] branch master updated: PROTON-2172: proactor fdlimit test. Should work after PROTON-1496.

2020-11-23 Thread cliffjansen
This is an automated email from the ASF dual-hosted git repository.

cliffjansen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/qpid-proton.git


The following commit(s) were added to refs/heads/master by this push:
 new 7735f1b  PROTON-2172: proactor fdlimit test. Should work after 
PROTON-1496.
7735f1b is described below

commit 7735f1b7b39b36f5fd292410385e6a5a9c4fb68a
Author: Cliff Jansen 
AuthorDate: Mon Nov 23 10:27:47 2020 -0800

PROTON-2172: proactor fdlimit test. Should work after PROTON-1496.
---
 c/tests/fdlimit.py | 7 ---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/c/tests/fdlimit.py b/c/tests/fdlimit.py
index 6848c68..2fe2e71 100644
--- a/c/tests/fdlimit.py
+++ b/c/tests/fdlimit.py
@@ -51,8 +51,7 @@ class FdLimitTest(unittest.TestCase):
 if cls.devnull:
 cls.devnull.close()
 
-# @unittest.skipUnless(prlimit_available, "prlimit not available")
-@unittest.skip("temporarily disabled (epoll fix pending)")
+@unittest.skipUnless(prlimit_available, "prlimit not available")
 def test_fd_limit_broker(self):
 """Check behaviour when running out of file descriptors on accept"""
 # Not too many FDs but not too few either, some are used for system 
purposes.
@@ -64,9 +63,11 @@ class FdLimitTest(unittest.TestCase):
 # NOTE: broker does not log a file descriptor related error at any 
point in the test, only
 #  PN_TRANSPORT_CLOSED: amqp:connection:framing-error: connection 
aborted
 #  PN_TRANSPORT_CLOSED: proton:io: Connection reset by peer - 
disconnected :5672 (connection aborted)
-for i in range(fdlimit + 1):
+for i in range(fdlimit):
 receiver = test_subprocess.Popen(["receive", "", b.port, 
str(i)], stdout=self.devnull)
 receivers.append(receiver)
+# Allow these subprocesses time to establish ahead of the upcoming 
test sender.
+time.sleep(1)
 
 # All FDs are now in use, send attempt will (with present 
implementation) hang
 with test_subprocess.Popen(["send", "", b.port, "x"],


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



[qpid-site] branch asf-site updated: fix up dashboard page CI build status entries, stale after recent Jenkins move

2020-11-23 Thread robbie
This is an automated email from the ASF dual-hosted git repository.

robbie pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/qpid-site.git


The following commit(s) were added to refs/heads/asf-site by this push:
 new 45c4cbe  fix up dashboard page CI build status entries, stale after 
recent Jenkins move
45c4cbe is described below

commit 45c4cbe909cc5121f84a73bbc203e4bd6dda6aa7
Author: Robbie Gemmell 
AuthorDate: Mon Nov 23 16:34:30 2020 +

fix up dashboard page CI build status entries, stale after recent Jenkins 
move
---
 content/dashboard.html   | 12 ++--
 input/_transom_config.py |  8 
 input/dashboard.md   | 10 +-
 3 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/content/dashboard.html b/content/dashboard.html
index 65e8e48..757646c 100644
--- a/content/dashboard.html
+++ b/content/dashboard.html
@@ -150,7 +150,7 @@ 
https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
   https://github.com/apache/qpid-cpp/blob/master/README.md;>Qpid 
C++
   1.39.0
   https://issues.apache.org/jira/projects/QPID;>Summary 
 https://issues.apache.org/jira/issues/?jql=project+%3D+QPID+and+resolution+is+null+and+component+in+%28%22C%2B%2B+Broker%22%2C+%22C%2B%2B+Build%22%2C+%22C%2B%2B+Client%22%2C+%22C%2B%2B+Clustering%22%2C+%22C%2B%2B+Documentation%22%2C+%22C%2B%2B+Tests%22%2C+%22C%2B%2B+Tools%22%2C+%22.NET+Client%22%2C+%22Perl+Client%22%2C+%22Python+Client+%28Wrapped%29%22%2C+%22QMF%22%2C+%22Ruby+Client%22%29;>Open
 iss [...]
-  https://builds.apache.org/blue/organizations/jenkins/Qpid-cpp-trunk-test/activity;>https://builds.apache.org/buildStatus/icon?job=Qpid-cpp-trunk-test; 
height="20"/> https://ci.appveyor.com/project/ApacheSoftwareFoundation/qpid-cpp/branch/master;>https://ci.appveyor.com/api/projects/status/wma611lkq1fcyo18?svg=true; 
height="20"/>
+  https://builds.apache.org/blue/organizations/jenkins/Qpid%2FQpid-CPP-Test/activity;>https://builds.apache.org/buildStatus/icon?job=Qpid/Qpid-CPP-Test; 
height="20"/> https://ci.appveyor.com/project/ApacheSoftwareFoundation/qpid-cpp/branch/master;>https://ci.appveyor.com/api/projects/status/wma611lkq1fcyo18?svg=true; 
height="20"/>
   https://gitbox.apache.org/repos/asf/qpid-cpp.git;>Git 
 https://github.com/apache/qpid-cpp;>GitHub
 
 
@@ -171,35 +171,35 @@ 
https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
   Qpid JMS
   0.54.0
   https://issues.apache.org/jira/projects/QPIDJMS;>Summary 
 https://issues.apache.org/jira/issues/?jql=project+%3D+QPIDJMS+and+resolution+is+null;>Open
 issues  https://issues.apache.org/jira/issues/?jql=project+%3D+QPIDJMS;>All 
issues  https://issues.apache.org/jira/secure/CreateIssue!default.jspa?pid=12314524;>Create
 issue
-  https://builds.apache.org/blue/organizations/jenkins/Qpid-JMS-Test-JDK8/activity;>https://builds.apache.org/buildStatus/icon?job=Qpid-JMS-Test-JDK8; 
height="20"/> https://travis-ci.org/apache/qpid-jms;>https://travis-ci.org/apache/qpid-jms.svg?branch=master; height="20"/> 
https://builds.apache.org/blue/organizations/jenkins/Qpid-JMS-Test-JDK8-Windows/activity;>https://builds.apache.org/buildStatus/icon?job=Qpid-JMS-Te [...]
+  https://builds.apache.org/blue/organizations/jenkins/Qpid%2FQpid-JMS-Test-JDK8/activity;>https://builds.apache.org/buildStatus/icon?job=Qpid/Qpid-JMS-Test-JDK8; 
height="20"/> https://travis-ci.org/apache/qpid-jms;>https://travis-ci.org/apache/qpid-jms.svg?branch=master; height="20"/> 
https://builds.apache.org/blue/organizations/jenkins/Qpid%2FQpid-JMS-Test-JDK8-Windows/activity;>https://builds.apache.org/buildStatus/i [...]
   https://gitbox.apache.org/repos/asf/qpid-jms.git;>Git 
 https://github.com/apache/qpid-jms;>GitHub
 
 
   Qpid JMS AMQP 0-x
   6.4.0
   https://issues.apache.org/jira/projects/QPID;>Summary 
 https://issues.apache.org/jira/issues/?jql=project+%3D+QPID+and+resolution+is+null+and+component+in+%28%22JMS+AMQP+0-x%22%29;>Open
 issues  https://issues.apache.org/jira/issues/?jql=project+%3D+QPID+and+component+in+%28%22JMS+AMQP+0-x%22%29;>All
 issues  https://issues.apache.org/jira/secure/CreateIssue!default.jspa?pid=12310520;>Create
 issue
-  https://builds.apache.org/job/Qpid-JMS-AMQP-0-x-Broker-J-TestMatrix/;>https://builds.apache.org/buildStatus/icon?job=Qpid-JMS-AMQP-0-x-Broker-J-TestMatrix;
 height="20"/>
+  https://builds.apache.org/job/Qpid/job/Qpid-JMS-AMQP-0-x-Broker-J-TestMatrix;>https://builds.apache.org/buildStatus/icon?job=Qpid/Qpid-JMS-AMQP-0-x-Broker-J-TestMatrix;
 height="20"/>
   https://gitbox.apache.org/repos/asf/qpid-jms-amqp-0-x.git;>Git 
 https://github.com/apache/qpid-jms-amqp-0-x;>GitHub
 
 
   Qpid Proton-J
   0.33.8
   https://issues.apache.org/jira/projects/PROTON;>Summary 
 https://issues.apache.org/jira/issues/?jql=project+%3D+PROTON+and+resolution+is+null+and+component+in+%28%22proton-j%22%29;>Open
 issues  https://issues.apache.org/jira/issues/?jql=project+%3D+PROTON+and+component+in+%28%22proton-j%22%29;>All
 

[qpid-dispatch] branch dev-protocol-adaptors-2 updated: DISPATCH-1852: Added code to accumulate DATA frames in the message body in case credit does not arrive and the header has not been routed. This

2020-11-23 Thread gmurthy
This is an automated email from the ASF dual-hosted git repository.

gmurthy pushed a commit to branch dev-protocol-adaptors-2
in repository https://gitbox.apache.org/repos/asf/qpid-dispatch.git


The following commit(s) were added to refs/heads/dev-protocol-adaptors-2 by 
this push:
 new 042a647  DISPATCH-1852: Added code to accumulate DATA frames in the 
message body in case credit does not arrive and the header has not been routed. 
This closes #926
042a647 is described below

commit 042a647e3e6df0a7871c9f3d194e64dd95bc07a1
Author: Ganesh Murthy 
AuthorDate: Fri Nov 20 10:02:41 2020 -0500

DISPATCH-1852: Added code to accumulate DATA frames in the message body in 
case credit does not arrive and the header has not been routed. This closes #926
---
 src/adaptors/http2/http2_adaptor.c | 112 +
 src/adaptors/http2/http2_adaptor.h |   1 +
 2 files changed, 64 insertions(+), 49 deletions(-)

diff --git a/src/adaptors/http2/http2_adaptor.c 
b/src/adaptors/http2/http2_adaptor.c
index a2ee4fe..85760de 100644
--- a/src/adaptors/http2/http2_adaptor.c
+++ b/src/adaptors/http2/http2_adaptor.c
@@ -414,14 +414,23 @@ static int on_data_chunk_recv_callback(nghttp2_session 
*session,
 return 0;
 
 stream_data->bytes_in += len;
-
 qd_buffer_list_t buffers;
 DEQ_INIT(buffers);
 qd_buffer_list_append(, (uint8_t *)data, len);
 
-if (stream_data->in_dlv) {
-if (!stream_data->in_dlv_released)
+//
+// DISPATCH-: If an in_dlv is present it means that the qdr_link_deliver() 
has already been called (delivery has already been routed)
+// in which case qd_message_stream_data_append can be called to append 
buffers to the message body
+// If stream_data->in_dlv = 0 but stream_data->header_and_props_composed 
is true, it means that the message has not been routed yet
+// but the message already has headers and properties
+// in which case the qd_message_stream_data_append() can be called to add 
body data to the message.
+// In many cases when the response message is streamed by a server, the 
entire message body can arrive before we get credit to route it.
+// We want to be able to keep collecting the incoming DATA in the message 
object so we can ultimately route it when the credit does ultimately arrive.
+//
+if (stream_data->in_dlv || stream_data->header_and_props_composed) {
+if (!stream_data->in_dlv_released) {
 qd_message_stream_data_append(stream_data->message, );
+}
 }
 else {
 if (!stream_data->body) {
@@ -655,29 +664,61 @@ static int on_header_callback(nghttp2_session *session,
 }
 
 
-static void compose_and_deliver(qdr_http2_stream_data_t *stream_data, 
qd_composed_field_t  *header_and_props, qdr_http2_connection_t *conn, bool 
receive_complete)
+static bool compose_and_deliver(qdr_http2_connection_t *conn, 
qdr_http2_stream_data_t *stream_data, bool receive_complete)
 {
-if (receive_complete) {
-if (!stream_data->body) {
-stream_data->body = qd_compose(QD_PERFORMATIVE_BODY_DATA, 0);
-qd_compose_insert_binary(stream_data->body, 0, 0);
-qd_log(http2_adaptor->log_source, QD_LOG_TRACE, 
"[C%"PRIu64"][S%"PRId32"] Inserting empty body data in compose_and_deliver", 
conn->conn_id, stream_data->stream_id);
+if (!stream_data->header_and_props_composed) {
+qd_composed_field_t  *header_and_props = 0;
+if (conn->ingress) {
+header_and_props = qd_message_compose_amqp(stream_data->message,
+  conn->config->address,  // 
const char *to
+  0,  // 
const char *subject
+  stream_data->reply_to,  // 
const char *reply_to
+  0,  // 
const char *content_type
+  0,  // 
const char *content_encoding
+  0,  // 
int32_t  correlation_id
+  conn->config->site);
 }
-}
-if (stream_data->body) {
-qd_message_compose_4(stream_data->message, header_and_props, 
stream_data->app_properties, stream_data->body, receive_complete);
-}
-else {
-qd_message_compose_3(stream_data->message, header_and_props, 
stream_data->app_properties, receive_complete);
+else {
+header_and_props = qd_message_compose_amqp(stream_data->message,
+  stream_data->reply_to,  // 
const char *to
+  0,  // 
const char *subject
+  0,  // 
const char *reply_to
+