[qpid-protonj2] branch main updated: Add sender recovery test when reconnection fails before attach response
This is an automated email from the ASF dual-hosted git repository. tabish pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/qpid-protonj2.git The following commit(s) were added to refs/heads/main by this push: new de30aa0 Add sender recovery test when reconnection fails before attach response de30aa0 is described below commit de30aa09105cd22e6732b91340efc643389ce294 Author: Timothy Bish AuthorDate: Tue Apr 27 18:34:42 2021 -0400 Add sender recovery test when reconnection fails before attach response Tests that senders are recovered after reconnection with a reconnection failure during recovery --- .../protonj2/client/impl/ReconnectSenderTest.java | 60 ++ 1 file changed, 60 insertions(+) diff --git a/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/impl/ReconnectSenderTest.java b/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/impl/ReconnectSenderTest.java index 18afaaa..6c37c3b 100644 --- a/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/impl/ReconnectSenderTest.java +++ b/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/impl/ReconnectSenderTest.java @@ -293,4 +293,64 @@ class ReconnectSenderTest extends ImperativeClientTestCase { finalPeer.waitForScriptToComplete(); } } + +@Test +public void testMultipleSenderCreationRecoversAfterDropWithNoAttachResponse() throws Exception { +try (ProtonTestServer firstPeer = new ProtonTestServer(); +ProtonTestServer intermediatePeer = new ProtonTestServer(); + ProtonTestServer finalPeer = new ProtonTestServer()) { + +firstPeer.expectSASLAnonymousConnect(); +firstPeer.expectOpen().respond(); +firstPeer.expectBegin().respond(); +firstPeer.expectAttach().ofSender().respond(); +firstPeer.expectAttach().ofSender(); +firstPeer.dropAfterLastHandler(20); +firstPeer.start(); + +intermediatePeer.expectSASLAnonymousConnect(); +intermediatePeer.expectOpen().respond(); +intermediatePeer.expectBegin().respond(); +intermediatePeer.expectAttach().ofSender(); +intermediatePeer.dropAfterLastHandler(); +intermediatePeer.start(); + +finalPeer.expectSASLAnonymousConnect(); +finalPeer.expectOpen().respond(); +finalPeer.expectBegin().respond(); +finalPeer.expectAttach().ofSender().respond(); +finalPeer.expectAttach().ofSender().respond(); +finalPeer.expectClose().respond(); +finalPeer.start(); + +final URI primaryURI = firstPeer.getServerURI(); +final URI intermediateURI = intermediatePeer.getServerURI(); +final URI backupURI = finalPeer.getServerURI(); + +ConnectionOptions options = new ConnectionOptions(); +options.reconnectOptions().reconnectEnabled(true); + options.reconnectOptions().addReconnectLocation(intermediateURI.getHost(), intermediateURI.getPort()); + options.reconnectOptions().addReconnectLocation(backupURI.getHost(), backupURI.getPort()); + +Client container = Client.create(); +Connection connection = container.connect(primaryURI.getHost(), primaryURI.getPort(), options); +Session session = connection.openSession(); + +Sender sender1 = session.openSender("queue-1"); +Sender sender2 = session.openSender("queue-2"); + +firstPeer.waitForScriptToComplete(); + +// Await both being open before doing work to make the outcome predictable +sender1.openFuture().get(); +sender2.openFuture().get(); + +assertNull(sender1.trySend(Message.create("test"))); +assertNull(sender2.trySend(Message.create("test"))); + +connection.close(); + +finalPeer.waitForScriptToComplete(1000); +} +} } - To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org For additional commands, e-mail: commits-h...@qpid.apache.org
[qpid-dispatch] branch jiridanek-patch-5 updated (773f780 -> 2218700)
This is an automated email from the ASF dual-hosted git repository. jdanek pushed a change to branch jiridanek-patch-5 in repository https://gitbox.apache.org/repos/asf/qpid-dispatch.git. from 773f780 xxx add 2218700 Update build.yaml No new revisions were added by this update. Summary of changes: .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) - To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org For additional commands, e-mail: commits-h...@qpid.apache.org
[qpid-protonj2] branch main updated: Add additional waits for the intermediate peer to complete
This is an automated email from the ASF dual-hosted git repository. tabish pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/qpid-protonj2.git The following commit(s) were added to refs/heads/main by this push: new 241c842 Add additional waits for the intermediate peer to complete 241c842 is described below commit 241c84228343cf7ebd541fe5e7684818e4f3dc15 Author: Timothy Bish AuthorDate: Tue Apr 27 19:08:49 2021 -0400 Add additional waits for the intermediate peer to complete If not waiting for the intermediate peer the test can get ahead of the expected flow and send an unexpected frame. --- .../org/apache/qpid/protonj2/client/impl/ReconnectSenderTest.java | 1 + .../org/apache/qpid/protonj2/client/impl/ReconnectSessionTest.java| 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/impl/ReconnectSenderTest.java b/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/impl/ReconnectSenderTest.java index 6c37c3b..8b6f9a3 100644 --- a/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/impl/ReconnectSenderTest.java +++ b/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/impl/ReconnectSenderTest.java @@ -340,6 +340,7 @@ class ReconnectSenderTest extends ImperativeClientTestCase { Sender sender2 = session.openSender("queue-2"); firstPeer.waitForScriptToComplete(); +intermediatePeer.waitForScriptToComplete(); // Await both being open before doing work to make the outcome predictable sender1.openFuture().get(); diff --git a/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/impl/ReconnectSessionTest.java b/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/impl/ReconnectSessionTest.java index 31577b0..64a471d 100644 --- a/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/impl/ReconnectSessionTest.java +++ b/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/impl/ReconnectSessionTest.java @@ -27,6 +27,7 @@ import org.apache.qpid.protonj2.client.Receiver; import org.apache.qpid.protonj2.client.Session; import org.apache.qpid.protonj2.client.test.ImperativeClientTestCase; import org.apache.qpid.protonj2.test.driver.ProtonTestServer; +import org.junit.jupiter.api.RepeatedTest; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Timeout; @@ -120,7 +121,7 @@ class ReconnectSessionTest extends ImperativeClientTestCase { } } -@Test +@RepeatedTest(10) public void testMultipleSessionCreationRecoversAfterDropWithNoBeginResponse() throws Exception { try (ProtonTestServer firstPeer = new ProtonTestServer(); ProtonTestServer intermediatePeer = new ProtonTestServer(); @@ -166,6 +167,7 @@ class ReconnectSessionTest extends ImperativeClientTestCase { Session session2 = connection.openSession(); firstPeer.waitForScriptToComplete(); +intermediatePeer.waitForScriptToComplete(); // Await both being open before doing work to make the outcome predictable session1.openFuture().get(); - To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org For additional commands, e-mail: commits-h...@qpid.apache.org
[qpid-protonj2] branch main updated: Adds additional tests for reconnect recovering sessions
This is an automated email from the ASF dual-hosted git repository. tabish pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/qpid-protonj2.git The following commit(s) were added to refs/heads/main by this push: new 80792ce Adds additional tests for reconnect recovering sessions 80792ce is described below commit 80792ce4f8b974c8d8110dd876fb14ca3c33f2eb Author: Timothy Bish AuthorDate: Tue Apr 27 17:44:05 2021 -0400 Adds additional tests for reconnect recovering sessions Adds tests that demonstrate various cases of connection recovery handling where the response for a session resource was not received before connection drops and in some cases a similar outcome happens on connection attempt to an second host. --- .../protonj2/client/impl/ReconnectSessionTest.java | 108 + 1 file changed, 108 insertions(+) diff --git a/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/impl/ReconnectSessionTest.java b/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/impl/ReconnectSessionTest.java index a4a2521..31577b0 100644 --- a/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/impl/ReconnectSessionTest.java +++ b/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/impl/ReconnectSessionTest.java @@ -16,11 +16,14 @@ */ package org.apache.qpid.protonj2.client.impl; +import static org.junit.jupiter.api.Assertions.assertNull; + import java.net.URI; import org.apache.qpid.protonj2.client.Client; import org.apache.qpid.protonj2.client.Connection; import org.apache.qpid.protonj2.client.ConnectionOptions; +import org.apache.qpid.protonj2.client.Receiver; import org.apache.qpid.protonj2.client.Session; import org.apache.qpid.protonj2.client.test.ImperativeClientTestCase; import org.apache.qpid.protonj2.test.driver.ProtonTestServer; @@ -74,4 +77,109 @@ class ReconnectSessionTest extends ImperativeClientTestCase { finalPeer.waitForScriptToComplete(); } } + +@Test +public void testSessionCreationRecoversAfterDropWithNoBeginResponse() throws Exception { +try (ProtonTestServer firstPeer = new ProtonTestServer(); + ProtonTestServer finalPeer = new ProtonTestServer()) { + +firstPeer.expectSASLAnonymousConnect(); +firstPeer.expectOpen().respond(); +firstPeer.expectBegin(); +firstPeer.dropAfterLastHandler(20); +firstPeer.start(); + +finalPeer.expectSASLAnonymousConnect(); +finalPeer.expectOpen().respond(); +finalPeer.expectBegin().respond(); +finalPeer.expectAttach().ofReceiver().respond(); +finalPeer.expectFlow(); +finalPeer.expectClose().respond(); +finalPeer.start(); + +final URI primaryURI = firstPeer.getServerURI(); +final URI backupURI = finalPeer.getServerURI(); + +ConnectionOptions options = new ConnectionOptions(); +options.reconnectOptions().reconnectEnabled(true); + options.reconnectOptions().addReconnectLocation(backupURI.getHost(), backupURI.getPort()); + +Client container = Client.create(); +Connection connection = container.connect(primaryURI.getHost(), primaryURI.getPort(), options); +Session session = connection.openSession(); + +firstPeer.waitForScriptToComplete(); + +Receiver receiver = session.openFuture().get().openReceiver("queue").openFuture().get(); + +assertNull(receiver.tryReceive()); + +connection.close(); + +finalPeer.waitForScriptToComplete(1000); +} +} + +@Test +public void testMultipleSessionCreationRecoversAfterDropWithNoBeginResponse() throws Exception { +try (ProtonTestServer firstPeer = new ProtonTestServer(); +ProtonTestServer intermediatePeer = new ProtonTestServer(); + ProtonTestServer finalPeer = new ProtonTestServer()) { + +firstPeer.expectSASLAnonymousConnect(); +firstPeer.expectOpen().respond(); +firstPeer.expectBegin().respond(); +firstPeer.expectBegin(); +firstPeer.dropAfterLastHandler(20); +firstPeer.start(); + +intermediatePeer.expectSASLAnonymousConnect(); +intermediatePeer.expectOpen().respond(); +intermediatePeer.expectBegin().respond(); +intermediatePeer.expectBegin(); +intermediatePeer.dropAfterLastHandler(); +intermediatePeer.start(); + +finalPeer.expectSASLAnonymousConnect(); +finalPeer.expectOpen().respond(); +finalPeer.expectBegin().respond(); +finalPeer.expectBegin().respond(); +finalPeer.expectAttach().ofReceiver().respond(); +finalPeer.expectFlow(); +finalPeer.expectAttach().ofReceiver().respond();
[qpid-dispatch] branch main updated: DISPATCH-2089: [tools] Scraper must html-escape transfer payload
This is an automated email from the ASF dual-hosted git repository. chug pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/qpid-dispatch.git The following commit(s) were added to refs/heads/main by this push: new 4da6849 DISPATCH-2089: [tools] Scraper must html-escape transfer payload 4da6849 is described below commit 4da68495bf88d33898ab63d0d3095ffc0ca28046 Author: Chuck Rolke AuthorDate: Tue Apr 27 17:39:44 2021 -0400 DISPATCH-2089: [tools] Scraper must html-escape transfer payload --- 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-unsubscr...@qpid.apache.org For additional commands, e-mail: commits-h...@qpid.apache.org
[qpid-protonj2] branch main updated: Refactor Reconnect handling to not use URI types and not filter dups
This is an automated email from the ASF dual-hosted git repository. tabish pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/qpid-protonj2.git The following commit(s) were added to refs/heads/main by this push: new 608e1d2 Refactor Reconnect handling to not use URI types and not filter dups 608e1d2 is described below commit 608e1d273e753eea757929e7361e512be781f978 Author: Timothy Bish AuthorDate: Tue Apr 27 16:48:08 2021 -0400 Refactor Reconnect handling to not use URI types and not filter dups Don't attempt to filter duplicates at the inet level to allow for SNI based service handling on remote environments where different host names can resolve to the same IP. --- .../examples/reconnect/ReconnectReceiver.java | 2 +- .../client/examples/reconnect/ReconnectSender.java | 2 +- .../qpid/protonj2/client/ReconnectLocation.java| 95 .../qpid/protonj2/client/ReconnectOptions.java | 19 +- .../protonj2/client/impl/ClientConnection.java | 50 +-- .../client/util/ReconnectLocationPool.java | 239 ++ .../protonj2/client/util/ReconnectionURIPool.java | 268 .../client/impl/ReconnectReceiverTest.java | 6 +- .../protonj2/client/impl/ReconnectSenderTest.java | 8 +- .../protonj2/client/impl/ReconnectSessionTest.java | 2 +- .../client/impl/ReconnectStreamReceiverTest.java | 4 +- .../client/impl/ReconnectStreamSenderTest.java | 8 +- .../qpid/protonj2/client/impl/ReconnectTest.java | 18 +- .../client/impl/ReconnectTransactionTest.java | 2 +- .../client/util/RecoonectLocationPoolTest.java | 355 +++ .../client/util/RecoonectionURIPoolTest.java | 484 - 16 files changed, 743 insertions(+), 819 deletions(-) diff --git a/protonj2-client-examples/src/main/java/org/apache/qpid/protonj2/client/examples/reconnect/ReconnectReceiver.java b/protonj2-client-examples/src/main/java/org/apache/qpid/protonj2/client/examples/reconnect/ReconnectReceiver.java index 3d3bc3c..5fe898d 100644 --- a/protonj2-client-examples/src/main/java/org/apache/qpid/protonj2/client/examples/reconnect/ReconnectReceiver.java +++ b/protonj2-client-examples/src/main/java/org/apache/qpid/protonj2/client/examples/reconnect/ReconnectReceiver.java @@ -42,7 +42,7 @@ public class ReconnectReceiver { connectionOpts.reconnectEnabled(true); if (backupServerHost != null) { - connectionOpts.reconnectOptions().addReconnectHost(backupServerHost, backupServerPort); + connectionOpts.reconnectOptions().addReconnectLocation(backupServerHost, backupServerPort); } try (Connection connection = client.connect(serverHost, serverPort, connectionOpts); diff --git a/protonj2-client-examples/src/main/java/org/apache/qpid/protonj2/client/examples/reconnect/ReconnectSender.java b/protonj2-client-examples/src/main/java/org/apache/qpid/protonj2/client/examples/reconnect/ReconnectSender.java index 3b243bc..8d02ec3 100644 --- a/protonj2-client-examples/src/main/java/org/apache/qpid/protonj2/client/examples/reconnect/ReconnectSender.java +++ b/protonj2-client-examples/src/main/java/org/apache/qpid/protonj2/client/examples/reconnect/ReconnectSender.java @@ -41,7 +41,7 @@ public class ReconnectSender { connectionOpts.reconnectEnabled(true); if (backupServerHost != null) { - connectionOpts.reconnectOptions().addReconnectHost(backupServerHost, backupServerPort); + connectionOpts.reconnectOptions().addReconnectLocation(backupServerHost, backupServerPort); } try (Connection connection = client.connect(serverHost, serverPort, connectionOpts); diff --git a/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/ReconnectLocation.java b/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/ReconnectLocation.java new file mode 100644 index 000..20b9a74 --- /dev/null +++ b/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/ReconnectLocation.java @@ -0,0 +1,95 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.qpid.protonj2.client; + +import
[qpid-interop-test] 01/02: A change to RHEA's processing of timestamps from ulongs to Date objects requires a fix to the javascript receive shim.
This is an automated email from the ASF dual-hosted git repository. kpvdr pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/qpid-interop-test.git commit 302c3b495f38ba686bf73349537767890bd6dff0 Author: Kim van der Riet AuthorDate: Tue Apr 27 15:34:50 2021 -0400 A change to RHEA's processing of timestamps from ulongs to Date objects requires a fix to the javascript receive shim. --- shims/rhea-js/amqp_types_test/Receiver.js | 10 +++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/shims/rhea-js/amqp_types_test/Receiver.js b/shims/rhea-js/amqp_types_test/Receiver.js index b445f73..390a255 100755 --- a/shims/rhea-js/amqp_types_test/Receiver.js +++ b/shims/rhea-js/amqp_types_test/Receiver.js @@ -59,8 +59,8 @@ function Receiver(brokerAddr, brokerPort, queueName, amqpType, numTestValues) { case "ulong": case "decimal32": case "decimal64": -case "decimal128": -case "timestamp": this.receivedValueList.push(this.decodeUnsigned(msgBody)); break; +case "decimal128": this.receivedValueList.push(this.decodeUnsigned(msgBody)); break; +case "timestamp": this.receivedValueList.push(this.decodeTimestamp(msgBody)); break; case "byte": case "short": case "int": @@ -91,6 +91,10 @@ function Receiver(brokerAddr, brokerPort, queueName, amqpType, numTestValues) { return "0x" + msgBody.toString(Buffer.isBuffer(msgBody) ? 'hex' : 16); }; +this.decodeTimestamp = function(msgBody) { +return "0x" + msgBody.getTime().toString('hex') +} + this.decodeSigned = function(msgBody) { if (Buffer.isBuffer(msgBody)) { if (msgBody[0] & 0x80) { // sign bit set @@ -175,7 +179,7 @@ function Receiver(brokerAddr, brokerPort, queueName, amqpType, numTestValues) { } } }); - + this.container.on('disconnected', function(context){ console.error('Unable to connet to broker') }); - To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org For additional commands, e-mail: commits-h...@qpid.apache.org
[qpid-interop-test] 02/02: Fixed minor syntax typo in previous commit
This is an automated email from the ASF dual-hosted git repository. kpvdr pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/qpid-interop-test.git commit 9a6865d586c7759785262b7811f15d3d19cf1b37 Author: Kim van der Riet AuthorDate: Tue Apr 27 15:48:27 2021 -0400 Fixed minor syntax typo in previous commit --- shims/rhea-js/amqp_types_test/Receiver.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shims/rhea-js/amqp_types_test/Receiver.js b/shims/rhea-js/amqp_types_test/Receiver.js index 390a255..5b9b51e 100755 --- a/shims/rhea-js/amqp_types_test/Receiver.js +++ b/shims/rhea-js/amqp_types_test/Receiver.js @@ -92,7 +92,7 @@ function Receiver(brokerAddr, brokerPort, queueName, amqpType, numTestValues) { }; this.decodeTimestamp = function(msgBody) { -return "0x" + msgBody.getTime().toString('hex') +return "0x" + msgBody.getTime().toString('hex'); } this.decodeSigned = function(msgBody) { - To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org For additional commands, e-mail: commits-h...@qpid.apache.org
[qpid-interop-test] branch main updated (c8725ed -> 9a6865d)
This is an automated email from the ASF dual-hosted git repository. kpvdr pushed a change to branch main in repository https://gitbox.apache.org/repos/asf/qpid-interop-test.git. from c8725ed Fix for bad vesion problem using maven to search the pom file new 302c3b4 A change to RHEA's processing of timestamps from ulongs to Date objects requires a fix to the javascript receive shim. new 9a6865d Fixed minor syntax typo in previous commit The 2 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. Summary of changes: shims/rhea-js/amqp_types_test/Receiver.js | 10 +++--- 1 file changed, 7 insertions(+), 3 deletions(-) - To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org For additional commands, e-mail: commits-h...@qpid.apache.org
[qpid-jms] branch main updated: QPIDJMS-528 Add additional logging to JMS Connection for failure
This is an automated email from the ASF dual-hosted git repository. tabish pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/qpid-jms.git The following commit(s) were added to refs/heads/main by this push: new 14414ba QPIDJMS-528 Add additional logging to JMS Connection for failure 14414ba is described below commit 14414ba319183d6c0450564b46ef7c89a86357b9 Author: Timothy Bish AuthorDate: Tue Apr 27 13:24:25 2021 -0400 QPIDJMS-528 Add additional logging to JMS Connection for failure Adds additional informational loggers for connection interrupted (when failover active) and connection failed (both for reconnect or normal connection) to give status of the connection in the logs. --- .../src/main/java/org/apache/qpid/jms/JmsConnection.java | 8 1 file changed, 8 insertions(+) diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnection.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnection.java index ad75e6b..b15e781 100644 --- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnection.java +++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnection.java @@ -1250,6 +1250,12 @@ public class JmsConnection implements AutoCloseable, Connection, TopicConnection @Override public void onConnectionInterrupted(final URI remoteURI) { +try { +LOG.info("Connection {} interrupted to server: {}", connectionInfo.getId(), URISupport.removeQuery(remoteURI)); +} catch (URISyntaxException e) { +LOG.info("Connection {} interrupted to server: {}:{}", connectionInfo.getId(), remoteURI.getHost(), remoteURI.getPort()); +} + for (JmsSession session : sessions.values()) { session.onConnectionInterrupted(); } @@ -1369,6 +1375,8 @@ public class JmsConnection implements AutoCloseable, Connection, TopicConnection public void onConnectionFailure(final ProviderException ex) { providerFailed(ex); +LOG.info("Connection has failed due to error: {}", ex != null ? ex.getMessage() : "No error details provided."); + // Signal that connection dropped we need to mark transactions as // failed, deliver failure events to asynchronous send completions etc. for (JmsSession session : sessions.values()) { - To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org For additional commands, e-mail: commits-h...@qpid.apache.org
[qpid-dispatch] branch jiridanek-patch-5 created (now 773f780)
This is an automated email from the ASF dual-hosted git repository. jdanek pushed a change to branch jiridanek-patch-5 in repository https://gitbox.apache.org/repos/asf/qpid-dispatch.git. at 773f780 xxx This branch includes the following new commits: new 773f780 xxx The 1 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-unsubscr...@qpid.apache.org For additional commands, e-mail: commits-h...@qpid.apache.org
[qpid-dispatch] 01/01: xxx
This is an automated email from the ASF dual-hosted git repository. jdanek pushed a commit to branch jiridanek-patch-5 in repository https://gitbox.apache.org/repos/asf/qpid-dispatch.git commit 773f78006119cdfb5cab905d342bbcf85593b9fa Author: Jiri Daněk AuthorDate: Tue Apr 27 18:43:21 2021 +0200 xxx --- .github/workflows/build.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 2fe1b6e..e679a85 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -239,6 +239,7 @@ jobs: docs: name: 'Docs (${{ matrix.os }})' runs-on: ${{ matrix.os }} +continue-on-error: true strategy: matrix: os: [ ubuntu-20.04 ] - To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org For additional commands, e-mail: commits-h...@qpid.apache.org
[qpid-jms] branch main updated: QPIDJMS-534 Fail pending resource creation calls on connection drop
This is an automated email from the ASF dual-hosted git repository. tabish pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/qpid-jms.git The following commit(s) were added to refs/heads/main by this push: new 8ab821d QPIDJMS-534 Fail pending resource creation calls on connection drop 8ab821d is described below commit 8ab821db90506d5900c313260dfb8b6c0fe1 Author: Timothy Bish AuthorDate: Tue Apr 27 12:22:47 2021 -0400 QPIDJMS-534 Fail pending resource creation calls on connection drop Respond quickly to resource creation failures on connection drop instead of waiting for a configured request timeout to avoid stuck calls to create during reconnection processing. --- .../qpid/jms/provider/amqp/AmqpProvider.java | 22 +- .../amqp/builders/AmqpResourceBuilder.java | 10 +- .../provider/failover/FailoverIntegrationTest.java | 267 + .../qpid/jms/test/testpeer/TestAmqpPeer.java | 33 +++ 4 files changed, 328 insertions(+), 4 deletions(-) diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpProvider.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpProvider.java index 59aa383..8058678 100644 --- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpProvider.java +++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpProvider.java @@ -160,6 +160,7 @@ public class AmqpProvider implements Provider, TransportListener , AmqpResourceP private final ProviderFutureFactory futureFactory; private AsyncResult connectionRequest; private ScheduledFuture nextIdleTimeoutCheck; +private List failOnConnectionDropList = new ArrayList<>(); /** * Create a new instance of an AmqpProvider bonded to the given remote URI. @@ -1146,8 +1147,17 @@ public class AmqpProvider implements Provider, TransportListener , AmqpResourceP failureCause = ex; ProviderListener listener = this.listener; -if (listener != null) { - listener.onConnectionFailure(ProviderExceptionSupport.createNonFatalOrPassthrough(ex)); +try { +if (listener != null) { + listener.onConnectionFailure(ProviderExceptionSupport.createNonFatalOrPassthrough(ex)); +} +} finally { +// Alert the request to the failure and then afterwards clean up any stragglers that have not +// been altered to the provider having failed to avoid any lingering blocked resource create +// calls and possibly others as needed. +for (AsyncResult request : failOnConnectionDropList) { +request.onFailure(ex); +} } } @@ -1546,6 +1556,14 @@ public class AmqpProvider implements Provider, TransportListener , AmqpResourceP return null; } +public void addToFailOnConnectionDropTracking(AsyncResult result) { +failOnConnectionDropList.add(result); +} + +public void removeFromFailOnConnectionDropTracking(AsyncResult result) { +failOnConnectionDropList.remove(result); +} + //- Internal implementation --// private void checkClosedOrFailed() throws ProviderException { diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/builders/AmqpResourceBuilder.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/builders/AmqpResourceBuilder.java index 408bda7..5dee9c0 100644 --- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/builders/AmqpResourceBuilder.java +++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/builders/AmqpResourceBuilder.java @@ -54,10 +54,12 @@ public abstract class AmqpResourceBuilder JmsConnectionInfo.INFINITE) { // Attempt to schedule a cancellation of the pending open request, can return @@ -147,6 +150,7 @@ public abstract class AmqpResourceBuilder outgoingWindowMatcher, boolean sendResponse) { final BeginMatcher beginMatcher = new BeginMatcher() @@ -1240,6 +1245,20 @@ public class TestAmqpPeer implements AutoCloseable addHandler(attachMatcher); } +public void expectSenderAttachButDoNotRespond() +{ +final AttachMatcher attachMatcher = new AttachMatcher() +.withName(notNullValue()) +.withHandle(notNullValue()) +.withRole(equalTo(Role.SENDER)) +.withSndSettleMode(Matchers.oneOf(SenderSettleMode.SETTLED, SenderSettleMode.UNSETTLED)) +.withRcvSettleMode(equalTo(ReceiverSettleMode.FIRST)) +.withSource(notNullValue()) +.withTarget(notNullValue()); + +addHandler(attachMatcher); +} + public void expectSenderAttach() { expectSenderAttach(notNullValue(), false, false); @@ -1433,6 +1452,20 @@ public class