[jira] [Commented] (PROTON-2618) Remote close with [condition = amqp:connection:forced] leads to exception thrown even though reconnect is enabled
[ https://issues.apache.org/jira/browse/PROTON-2618?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17616085#comment-17616085 ] ASF subversion and git services commented on PROTON-2618: - Commit dce813b8838b17d0a4a0e47116d7a8f08f1fab34 in qpid-protonj2's branch refs/heads/main from Timothy Bish [ https://gitbox.apache.org/repos/asf?p=qpid-protonj2.git;h=dce813b8 ] PROTON-2618 Add additional sender test to validate recovery state Ensure sends still function as expected after link recovery and previous blocked send failed. > Remote close with [condition = amqp:connection:forced] leads to exception > thrown even though reconnect is enabled > - > > Key: PROTON-2618 > URL: https://issues.apache.org/jira/browse/PROTON-2618 > Project: Qpid Proton > Issue Type: Bug > Components: protonj2 >Affects Versions: protonj2-1.0.0-M9 >Reporter: Jiri Daněk >Assignee: Timothy A. Bish >Priority: Major > Fix For: protonj2-1.0.0-M10 > > > According to previous issues in the Qpid Proton and Qpid JMS projects, the > AMQP clients are supposed to initiate reconnect in this sitiuation. > * QPIDJMS-395, QPIDJMS-265 > * PROTON-1416, PROTON-1423 > * https://github.com/Azure/amqpnetlite/issues/33 > * (PROTON-2204) > Instead, I get an exception > {noformat} > [15:38:33] [INFO] dtestlib.Test :: stderr: > > org.apache.qpid.protonj2.client.exceptions.ClientConnectionRemotelyClosedException: > Received error from remote peer without description [condition = > amqp:connection:forced] > at > org.apache.qpid.protonj2.client.impl.ClientExceptionSupport.convertToConnectionClosedException(ClientExceptionSupport.java:128) > at > org.apache.qpid.protonj2.client.impl.ClientLinkType.handleParentEndpointClosed(ClientLinkType.java:378) > at > org.apache.qpid.protonj2.engine.impl.ProtonLink.fireParentEndpointClosed(ProtonLink.java:517) > at > org.apache.qpid.protonj2.engine.impl.ProtonLink.handleConnectionLocallyClosed(ProtonLink.java:590) > at > org.apache.qpid.protonj2.engine.impl.ProtonSession.lambda$handleConnectionLocallyClosed$1(ProtonSession.java:467) > at java.base/java.lang.Iterable.forEach(Iterable.java:75) > at > org.apache.qpid.protonj2.engine.impl.ProtonSession.handleConnectionLocallyClosed(ProtonSession.java:467) > at > org.apache.qpid.protonj2.engine.impl.ProtonConnection.lambda$close$0(ProtonConnection.java:144) > at java.base/java.lang.Iterable.forEach(Iterable.java:75) > at > org.apache.qpid.protonj2.engine.impl.ProtonConnection.close(ProtonConnection.java:144) > at > org.apache.qpid.protonj2.engine.impl.ProtonConnection.close(ProtonConnection.java:63) > at > org.apache.qpid.protonj2.client.impl.ClientConnection.handleRemoteClose(ClientConnection.java:694) > at > org.apache.qpid.protonj2.engine.impl.ProtonEndpoint.fireRemoteClose(ProtonEndpoint.java:139) > at > org.apache.qpid.protonj2.engine.impl.ProtonConnection.handleClose(ProtonConnection.java:449) > at > org.apache.qpid.protonj2.engine.impl.ProtonPerformativeHandler.handleClose(ProtonPerformativeHandler.java:158) > at > org.apache.qpid.protonj2.engine.impl.ProtonPerformativeHandler.handleClose(ProtonPerformativeHandler.java:43) > at org.apache.qpid.protonj2.types.transport.Close.invoke(Close.java:74) > at > org.apache.qpid.protonj2.engine.IncomingAMQPEnvelope.invoke(IncomingAMQPEnvelope.java:69) > at > org.apache.qpid.protonj2.engine.impl.ProtonPerformativeHandler.handleRead(ProtonPerformativeHandler.java:68) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.invokeHandlerRead(ProtonEngineHandlerContext.java:187) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.fireRead(ProtonEngineHandlerContext.java:147) > at > org.apache.qpid.protonj2.engine.impl.ProtonFrameLoggingHandler.handleRead(ProtonFrameLoggingHandler.java:101) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.invokeHandlerRead(ProtonEngineHandlerContext.java:187) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.fireRead(ProtonEngineHandlerContext.java:147) > at > org.apache.qpid.protonj2.engine.impl.ProtonFrameDecodingHandler$FrameBodyParsingStage.parse(ProtonFrameDecodingHandler.java:363) > at > org.apache.qpid.protonj2.engine.impl.ProtonFrameDecodingHandler$FrameSizeParsingStage.parse(ProtonFrameDecodingHandler.java:259) > at > org.apache.qpid.protonj2.engine.impl.ProtonFrameDecodingHandler.handleRead(ProtonFrameDecodingHandler.java:99) > at >
[jira] [Commented] (PROTON-2618) Remote close with [condition = amqp:connection:forced] leads to exception thrown even though reconnect is enabled
[ https://issues.apache.org/jira/browse/PROTON-2618?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17614209#comment-17614209 ] ASF subversion and git services commented on PROTON-2618: - Commit fb8f7ce3d9c5d27815ba73e7f4aeb1418344415e in qpid-protonj2's branch refs/heads/main from Timothy Bish [ https://gitbox.apache.org/repos/asf?p=qpid-protonj2.git;h=fb8f7ce3 ] PROTON-2618 Add additional tests and fix minor stream sender issue Ensure that stream sender can fail pending unsettled sends when the connection is dropped or closed. > Remote close with [condition = amqp:connection:forced] leads to exception > thrown even though reconnect is enabled > - > > Key: PROTON-2618 > URL: https://issues.apache.org/jira/browse/PROTON-2618 > Project: Qpid Proton > Issue Type: Bug > Components: protonj2 >Affects Versions: protonj2-1.0.0-M9 >Reporter: Jiri Daněk >Assignee: Timothy A. Bish >Priority: Major > Fix For: protonj2-1.0.0-M10 > > > According to previous issues in the Qpid Proton and Qpid JMS projects, the > AMQP clients are supposed to initiate reconnect in this sitiuation. > * QPIDJMS-395, QPIDJMS-265 > * PROTON-1416, PROTON-1423 > * https://github.com/Azure/amqpnetlite/issues/33 > * (PROTON-2204) > Instead, I get an exception > {noformat} > [15:38:33] [INFO] dtestlib.Test :: stderr: > > org.apache.qpid.protonj2.client.exceptions.ClientConnectionRemotelyClosedException: > Received error from remote peer without description [condition = > amqp:connection:forced] > at > org.apache.qpid.protonj2.client.impl.ClientExceptionSupport.convertToConnectionClosedException(ClientExceptionSupport.java:128) > at > org.apache.qpid.protonj2.client.impl.ClientLinkType.handleParentEndpointClosed(ClientLinkType.java:378) > at > org.apache.qpid.protonj2.engine.impl.ProtonLink.fireParentEndpointClosed(ProtonLink.java:517) > at > org.apache.qpid.protonj2.engine.impl.ProtonLink.handleConnectionLocallyClosed(ProtonLink.java:590) > at > org.apache.qpid.protonj2.engine.impl.ProtonSession.lambda$handleConnectionLocallyClosed$1(ProtonSession.java:467) > at java.base/java.lang.Iterable.forEach(Iterable.java:75) > at > org.apache.qpid.protonj2.engine.impl.ProtonSession.handleConnectionLocallyClosed(ProtonSession.java:467) > at > org.apache.qpid.protonj2.engine.impl.ProtonConnection.lambda$close$0(ProtonConnection.java:144) > at java.base/java.lang.Iterable.forEach(Iterable.java:75) > at > org.apache.qpid.protonj2.engine.impl.ProtonConnection.close(ProtonConnection.java:144) > at > org.apache.qpid.protonj2.engine.impl.ProtonConnection.close(ProtonConnection.java:63) > at > org.apache.qpid.protonj2.client.impl.ClientConnection.handleRemoteClose(ClientConnection.java:694) > at > org.apache.qpid.protonj2.engine.impl.ProtonEndpoint.fireRemoteClose(ProtonEndpoint.java:139) > at > org.apache.qpid.protonj2.engine.impl.ProtonConnection.handleClose(ProtonConnection.java:449) > at > org.apache.qpid.protonj2.engine.impl.ProtonPerformativeHandler.handleClose(ProtonPerformativeHandler.java:158) > at > org.apache.qpid.protonj2.engine.impl.ProtonPerformativeHandler.handleClose(ProtonPerformativeHandler.java:43) > at org.apache.qpid.protonj2.types.transport.Close.invoke(Close.java:74) > at > org.apache.qpid.protonj2.engine.IncomingAMQPEnvelope.invoke(IncomingAMQPEnvelope.java:69) > at > org.apache.qpid.protonj2.engine.impl.ProtonPerformativeHandler.handleRead(ProtonPerformativeHandler.java:68) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.invokeHandlerRead(ProtonEngineHandlerContext.java:187) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.fireRead(ProtonEngineHandlerContext.java:147) > at > org.apache.qpid.protonj2.engine.impl.ProtonFrameLoggingHandler.handleRead(ProtonFrameLoggingHandler.java:101) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.invokeHandlerRead(ProtonEngineHandlerContext.java:187) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.fireRead(ProtonEngineHandlerContext.java:147) > at > org.apache.qpid.protonj2.engine.impl.ProtonFrameDecodingHandler$FrameBodyParsingStage.parse(ProtonFrameDecodingHandler.java:363) > at > org.apache.qpid.protonj2.engine.impl.ProtonFrameDecodingHandler$FrameSizeParsingStage.parse(ProtonFrameDecodingHandler.java:259) > at > org.apache.qpid.protonj2.engine.impl.ProtonFrameDecodingHandler.handleRead(ProtonFrameDecodingHandler.java:99) > at >
[jira] [Commented] (PROTON-2618) Remote close with [condition = amqp:connection:forced] leads to exception thrown even though reconnect is enabled
[ https://issues.apache.org/jira/browse/PROTON-2618?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17613356#comment-17613356 ] Jiri Daněk commented on PROTON-2618: It's working for me now. With 1.0.0-M10-SNAPSHOT, when I SIGTERM the Artemis broker to which client is connected, reconnect is initiated, and I don't get any exceptions! > Remote close with [condition = amqp:connection:forced] leads to exception > thrown even though reconnect is enabled > - > > Key: PROTON-2618 > URL: https://issues.apache.org/jira/browse/PROTON-2618 > Project: Qpid Proton > Issue Type: Bug > Components: protonj2 >Affects Versions: protonj2-1.0.0-M9 >Reporter: Jiri Daněk >Assignee: Timothy A. Bish >Priority: Major > Fix For: protonj2-1.0.0-M10 > > > According to previous issues in the Qpid Proton and Qpid JMS projects, the > AMQP clients are supposed to initiate reconnect in this sitiuation. > * QPIDJMS-395, QPIDJMS-265 > * PROTON-1416, PROTON-1423 > * https://github.com/Azure/amqpnetlite/issues/33 > * (PROTON-2204) > Instead, I get an exception > {noformat} > [15:38:33] [INFO] dtestlib.Test :: stderr: > > org.apache.qpid.protonj2.client.exceptions.ClientConnectionRemotelyClosedException: > Received error from remote peer without description [condition = > amqp:connection:forced] > at > org.apache.qpid.protonj2.client.impl.ClientExceptionSupport.convertToConnectionClosedException(ClientExceptionSupport.java:128) > at > org.apache.qpid.protonj2.client.impl.ClientLinkType.handleParentEndpointClosed(ClientLinkType.java:378) > at > org.apache.qpid.protonj2.engine.impl.ProtonLink.fireParentEndpointClosed(ProtonLink.java:517) > at > org.apache.qpid.protonj2.engine.impl.ProtonLink.handleConnectionLocallyClosed(ProtonLink.java:590) > at > org.apache.qpid.protonj2.engine.impl.ProtonSession.lambda$handleConnectionLocallyClosed$1(ProtonSession.java:467) > at java.base/java.lang.Iterable.forEach(Iterable.java:75) > at > org.apache.qpid.protonj2.engine.impl.ProtonSession.handleConnectionLocallyClosed(ProtonSession.java:467) > at > org.apache.qpid.protonj2.engine.impl.ProtonConnection.lambda$close$0(ProtonConnection.java:144) > at java.base/java.lang.Iterable.forEach(Iterable.java:75) > at > org.apache.qpid.protonj2.engine.impl.ProtonConnection.close(ProtonConnection.java:144) > at > org.apache.qpid.protonj2.engine.impl.ProtonConnection.close(ProtonConnection.java:63) > at > org.apache.qpid.protonj2.client.impl.ClientConnection.handleRemoteClose(ClientConnection.java:694) > at > org.apache.qpid.protonj2.engine.impl.ProtonEndpoint.fireRemoteClose(ProtonEndpoint.java:139) > at > org.apache.qpid.protonj2.engine.impl.ProtonConnection.handleClose(ProtonConnection.java:449) > at > org.apache.qpid.protonj2.engine.impl.ProtonPerformativeHandler.handleClose(ProtonPerformativeHandler.java:158) > at > org.apache.qpid.protonj2.engine.impl.ProtonPerformativeHandler.handleClose(ProtonPerformativeHandler.java:43) > at org.apache.qpid.protonj2.types.transport.Close.invoke(Close.java:74) > at > org.apache.qpid.protonj2.engine.IncomingAMQPEnvelope.invoke(IncomingAMQPEnvelope.java:69) > at > org.apache.qpid.protonj2.engine.impl.ProtonPerformativeHandler.handleRead(ProtonPerformativeHandler.java:68) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.invokeHandlerRead(ProtonEngineHandlerContext.java:187) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.fireRead(ProtonEngineHandlerContext.java:147) > at > org.apache.qpid.protonj2.engine.impl.ProtonFrameLoggingHandler.handleRead(ProtonFrameLoggingHandler.java:101) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.invokeHandlerRead(ProtonEngineHandlerContext.java:187) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.fireRead(ProtonEngineHandlerContext.java:147) > at > org.apache.qpid.protonj2.engine.impl.ProtonFrameDecodingHandler$FrameBodyParsingStage.parse(ProtonFrameDecodingHandler.java:363) > at > org.apache.qpid.protonj2.engine.impl.ProtonFrameDecodingHandler$FrameSizeParsingStage.parse(ProtonFrameDecodingHandler.java:259) > at > org.apache.qpid.protonj2.engine.impl.ProtonFrameDecodingHandler.handleRead(ProtonFrameDecodingHandler.java:99) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.invokeHandlerRead(ProtonEngineHandlerContext.java:199) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.fireRead(ProtonEngineHandlerContext.java:132) > at >
[jira] [Commented] (PROTON-2618) Remote close with [condition = amqp:connection:forced] leads to exception thrown even though reconnect is enabled
[ https://issues.apache.org/jira/browse/PROTON-2618?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17613232#comment-17613232 ] ASF subversion and git services commented on PROTON-2618: - Commit f215929395e44a8a0679befe15f96fd95b634c16 in qpid-protonj2's branch refs/heads/main from Timothy Bish [ https://gitbox.apache.org/repos/asf?p=qpid-protonj2.git;h=f2159293 ] PROTON-2618 Better handle remote forced close vs connection drop Ensure that the receiver doesn't react to remote force close of the connection if the connection will reconnect to avoid receive calls unblocking with error when the underlying connection is reconnecting. > Remote close with [condition = amqp:connection:forced] leads to exception > thrown even though reconnect is enabled > - > > Key: PROTON-2618 > URL: https://issues.apache.org/jira/browse/PROTON-2618 > Project: Qpid Proton > Issue Type: Bug > Components: protonj2 >Affects Versions: protonj2-1.0.0-M9 >Reporter: Jiri Daněk >Assignee: Timothy A. Bish >Priority: Major > > According to previous issues in the Qpid Proton and Qpid JMS projects, the > AMQP clients are supposed to initiate reconnect in this sitiuation. > * QPIDJMS-395, QPIDJMS-265 > * PROTON-1416, PROTON-1423 > * https://github.com/Azure/amqpnetlite/issues/33 > * (PROTON-2204) > Instead, I get an exception > {noformat} > [15:38:33] [INFO] dtestlib.Test :: stderr: > > org.apache.qpid.protonj2.client.exceptions.ClientConnectionRemotelyClosedException: > Received error from remote peer without description [condition = > amqp:connection:forced] > at > org.apache.qpid.protonj2.client.impl.ClientExceptionSupport.convertToConnectionClosedException(ClientExceptionSupport.java:128) > at > org.apache.qpid.protonj2.client.impl.ClientLinkType.handleParentEndpointClosed(ClientLinkType.java:378) > at > org.apache.qpid.protonj2.engine.impl.ProtonLink.fireParentEndpointClosed(ProtonLink.java:517) > at > org.apache.qpid.protonj2.engine.impl.ProtonLink.handleConnectionLocallyClosed(ProtonLink.java:590) > at > org.apache.qpid.protonj2.engine.impl.ProtonSession.lambda$handleConnectionLocallyClosed$1(ProtonSession.java:467) > at java.base/java.lang.Iterable.forEach(Iterable.java:75) > at > org.apache.qpid.protonj2.engine.impl.ProtonSession.handleConnectionLocallyClosed(ProtonSession.java:467) > at > org.apache.qpid.protonj2.engine.impl.ProtonConnection.lambda$close$0(ProtonConnection.java:144) > at java.base/java.lang.Iterable.forEach(Iterable.java:75) > at > org.apache.qpid.protonj2.engine.impl.ProtonConnection.close(ProtonConnection.java:144) > at > org.apache.qpid.protonj2.engine.impl.ProtonConnection.close(ProtonConnection.java:63) > at > org.apache.qpid.protonj2.client.impl.ClientConnection.handleRemoteClose(ClientConnection.java:694) > at > org.apache.qpid.protonj2.engine.impl.ProtonEndpoint.fireRemoteClose(ProtonEndpoint.java:139) > at > org.apache.qpid.protonj2.engine.impl.ProtonConnection.handleClose(ProtonConnection.java:449) > at > org.apache.qpid.protonj2.engine.impl.ProtonPerformativeHandler.handleClose(ProtonPerformativeHandler.java:158) > at > org.apache.qpid.protonj2.engine.impl.ProtonPerformativeHandler.handleClose(ProtonPerformativeHandler.java:43) > at org.apache.qpid.protonj2.types.transport.Close.invoke(Close.java:74) > at > org.apache.qpid.protonj2.engine.IncomingAMQPEnvelope.invoke(IncomingAMQPEnvelope.java:69) > at > org.apache.qpid.protonj2.engine.impl.ProtonPerformativeHandler.handleRead(ProtonPerformativeHandler.java:68) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.invokeHandlerRead(ProtonEngineHandlerContext.java:187) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.fireRead(ProtonEngineHandlerContext.java:147) > at > org.apache.qpid.protonj2.engine.impl.ProtonFrameLoggingHandler.handleRead(ProtonFrameLoggingHandler.java:101) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.invokeHandlerRead(ProtonEngineHandlerContext.java:187) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.fireRead(ProtonEngineHandlerContext.java:147) > at > org.apache.qpid.protonj2.engine.impl.ProtonFrameDecodingHandler$FrameBodyParsingStage.parse(ProtonFrameDecodingHandler.java:363) > at > org.apache.qpid.protonj2.engine.impl.ProtonFrameDecodingHandler$FrameSizeParsingStage.parse(ProtonFrameDecodingHandler.java:259) > at > org.apache.qpid.protonj2.engine.impl.ProtonFrameDecodingHandler.handleRead(ProtonFrameDecodingHandler.java:99) > at >
[jira] [Commented] (PROTON-2618) Remote close with [condition = amqp:connection:forced] leads to exception thrown even though reconnect is enabled
[ https://issues.apache.org/jira/browse/PROTON-2618?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17613025#comment-17613025 ] Jiri Daněk commented on PROTON-2618: {code} final ConnectionOptions options = new ConnectionOptions(); if (stringToBool(reconnectString)) { options.reconnectEnabled(true); } // ... try (Connection connection = client.connect(serverHost, serverPort, options)) { {code} Lines 168 and on in the file I linked. And reconnectString cli option is truthy, so I am enabling reconnect. > Remote close with [condition = amqp:connection:forced] leads to exception > thrown even though reconnect is enabled > - > > Key: PROTON-2618 > URL: https://issues.apache.org/jira/browse/PROTON-2618 > Project: Qpid Proton > Issue Type: Bug > Components: protonj2 >Affects Versions: protonj2-1.0.0-M9 >Reporter: Jiri Daněk >Assignee: Timothy A. Bish >Priority: Major > > According to previous issues in the Qpid Proton and Qpid JMS projects, the > AMQP clients are supposed to initiate reconnect in this sitiuation. > * QPIDJMS-395 > * PROTON-1416, PROTON-1423 > * https://github.com/Azure/amqpnetlite/issues/33 > * (PROTON-2204) > Instead, I get an exception > {noformat} > [15:38:33] [INFO] dtestlib.Test :: stderr: > > org.apache.qpid.protonj2.client.exceptions.ClientConnectionRemotelyClosedException: > Received error from remote peer without description [condition = > amqp:connection:forced] > at > org.apache.qpid.protonj2.client.impl.ClientExceptionSupport.convertToConnectionClosedException(ClientExceptionSupport.java:128) > at > org.apache.qpid.protonj2.client.impl.ClientLinkType.handleParentEndpointClosed(ClientLinkType.java:378) > at > org.apache.qpid.protonj2.engine.impl.ProtonLink.fireParentEndpointClosed(ProtonLink.java:517) > at > org.apache.qpid.protonj2.engine.impl.ProtonLink.handleConnectionLocallyClosed(ProtonLink.java:590) > at > org.apache.qpid.protonj2.engine.impl.ProtonSession.lambda$handleConnectionLocallyClosed$1(ProtonSession.java:467) > at java.base/java.lang.Iterable.forEach(Iterable.java:75) > at > org.apache.qpid.protonj2.engine.impl.ProtonSession.handleConnectionLocallyClosed(ProtonSession.java:467) > at > org.apache.qpid.protonj2.engine.impl.ProtonConnection.lambda$close$0(ProtonConnection.java:144) > at java.base/java.lang.Iterable.forEach(Iterable.java:75) > at > org.apache.qpid.protonj2.engine.impl.ProtonConnection.close(ProtonConnection.java:144) > at > org.apache.qpid.protonj2.engine.impl.ProtonConnection.close(ProtonConnection.java:63) > at > org.apache.qpid.protonj2.client.impl.ClientConnection.handleRemoteClose(ClientConnection.java:694) > at > org.apache.qpid.protonj2.engine.impl.ProtonEndpoint.fireRemoteClose(ProtonEndpoint.java:139) > at > org.apache.qpid.protonj2.engine.impl.ProtonConnection.handleClose(ProtonConnection.java:449) > at > org.apache.qpid.protonj2.engine.impl.ProtonPerformativeHandler.handleClose(ProtonPerformativeHandler.java:158) > at > org.apache.qpid.protonj2.engine.impl.ProtonPerformativeHandler.handleClose(ProtonPerformativeHandler.java:43) > at org.apache.qpid.protonj2.types.transport.Close.invoke(Close.java:74) > at > org.apache.qpid.protonj2.engine.IncomingAMQPEnvelope.invoke(IncomingAMQPEnvelope.java:69) > at > org.apache.qpid.protonj2.engine.impl.ProtonPerformativeHandler.handleRead(ProtonPerformativeHandler.java:68) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.invokeHandlerRead(ProtonEngineHandlerContext.java:187) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.fireRead(ProtonEngineHandlerContext.java:147) > at > org.apache.qpid.protonj2.engine.impl.ProtonFrameLoggingHandler.handleRead(ProtonFrameLoggingHandler.java:101) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.invokeHandlerRead(ProtonEngineHandlerContext.java:187) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.fireRead(ProtonEngineHandlerContext.java:147) > at > org.apache.qpid.protonj2.engine.impl.ProtonFrameDecodingHandler$FrameBodyParsingStage.parse(ProtonFrameDecodingHandler.java:363) > at > org.apache.qpid.protonj2.engine.impl.ProtonFrameDecodingHandler$FrameSizeParsingStage.parse(ProtonFrameDecodingHandler.java:259) > at > org.apache.qpid.protonj2.engine.impl.ProtonFrameDecodingHandler.handleRead(ProtonFrameDecodingHandler.java:99) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.invokeHandlerRead(ProtonEngineHandlerContext.java:199) > at >
[jira] [Commented] (PROTON-2618) Remote close with [condition = amqp:connection:forced] leads to exception thrown even though reconnect is enabled
[ https://issues.apache.org/jira/browse/PROTON-2618?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17613024#comment-17613024 ] Timothy A. Bish commented on PROTON-2618: - How is your connection configured? > Remote close with [condition = amqp:connection:forced] leads to exception > thrown even though reconnect is enabled > - > > Key: PROTON-2618 > URL: https://issues.apache.org/jira/browse/PROTON-2618 > Project: Qpid Proton > Issue Type: Bug > Components: protonj2 >Affects Versions: protonj2-1.0.0-M9 >Reporter: Jiri Daněk >Assignee: Timothy A. Bish >Priority: Major > > According to previous issues in the Qpid Proton and Qpid JMS projects, the > AMQP clients are supposed to initiate reconnect in this sitiuation. > * QPIDJMS-395 > * PROTON-1416, PROTON-1423 > * https://github.com/Azure/amqpnetlite/issues/33 > * (PROTON-2204) > Instead, I get an exception > {noformat} > [15:38:33] [INFO] dtestlib.Test :: stderr: > > org.apache.qpid.protonj2.client.exceptions.ClientConnectionRemotelyClosedException: > Received error from remote peer without description [condition = > amqp:connection:forced] > at > org.apache.qpid.protonj2.client.impl.ClientExceptionSupport.convertToConnectionClosedException(ClientExceptionSupport.java:128) > at > org.apache.qpid.protonj2.client.impl.ClientLinkType.handleParentEndpointClosed(ClientLinkType.java:378) > at > org.apache.qpid.protonj2.engine.impl.ProtonLink.fireParentEndpointClosed(ProtonLink.java:517) > at > org.apache.qpid.protonj2.engine.impl.ProtonLink.handleConnectionLocallyClosed(ProtonLink.java:590) > at > org.apache.qpid.protonj2.engine.impl.ProtonSession.lambda$handleConnectionLocallyClosed$1(ProtonSession.java:467) > at java.base/java.lang.Iterable.forEach(Iterable.java:75) > at > org.apache.qpid.protonj2.engine.impl.ProtonSession.handleConnectionLocallyClosed(ProtonSession.java:467) > at > org.apache.qpid.protonj2.engine.impl.ProtonConnection.lambda$close$0(ProtonConnection.java:144) > at java.base/java.lang.Iterable.forEach(Iterable.java:75) > at > org.apache.qpid.protonj2.engine.impl.ProtonConnection.close(ProtonConnection.java:144) > at > org.apache.qpid.protonj2.engine.impl.ProtonConnection.close(ProtonConnection.java:63) > at > org.apache.qpid.protonj2.client.impl.ClientConnection.handleRemoteClose(ClientConnection.java:694) > at > org.apache.qpid.protonj2.engine.impl.ProtonEndpoint.fireRemoteClose(ProtonEndpoint.java:139) > at > org.apache.qpid.protonj2.engine.impl.ProtonConnection.handleClose(ProtonConnection.java:449) > at > org.apache.qpid.protonj2.engine.impl.ProtonPerformativeHandler.handleClose(ProtonPerformativeHandler.java:158) > at > org.apache.qpid.protonj2.engine.impl.ProtonPerformativeHandler.handleClose(ProtonPerformativeHandler.java:43) > at org.apache.qpid.protonj2.types.transport.Close.invoke(Close.java:74) > at > org.apache.qpid.protonj2.engine.IncomingAMQPEnvelope.invoke(IncomingAMQPEnvelope.java:69) > at > org.apache.qpid.protonj2.engine.impl.ProtonPerformativeHandler.handleRead(ProtonPerformativeHandler.java:68) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.invokeHandlerRead(ProtonEngineHandlerContext.java:187) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.fireRead(ProtonEngineHandlerContext.java:147) > at > org.apache.qpid.protonj2.engine.impl.ProtonFrameLoggingHandler.handleRead(ProtonFrameLoggingHandler.java:101) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.invokeHandlerRead(ProtonEngineHandlerContext.java:187) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.fireRead(ProtonEngineHandlerContext.java:147) > at > org.apache.qpid.protonj2.engine.impl.ProtonFrameDecodingHandler$FrameBodyParsingStage.parse(ProtonFrameDecodingHandler.java:363) > at > org.apache.qpid.protonj2.engine.impl.ProtonFrameDecodingHandler$FrameSizeParsingStage.parse(ProtonFrameDecodingHandler.java:259) > at > org.apache.qpid.protonj2.engine.impl.ProtonFrameDecodingHandler.handleRead(ProtonFrameDecodingHandler.java:99) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.invokeHandlerRead(ProtonEngineHandlerContext.java:199) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.fireRead(ProtonEngineHandlerContext.java:132) > at > org.apache.qpid.protonj2.engine.impl.ProtonEnginePipeline.fireRead(ProtonEnginePipeline.java:301) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngine.ingest(ProtonEngine.java:227) > at >
[jira] [Commented] (PROTON-2618) Remote close with [condition = amqp:connection:forced] leads to exception thrown even though reconnect is enabled
[ https://issues.apache.org/jira/browse/PROTON-2618?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17613019#comment-17613019 ] Jiri Daněk commented on PROTON-2618: It's from {{receiver.receive}} call on line 223, https://github.com/rh-messaging/cli-java/blob/b0343218ad763c775327144cb5553a9025cdbcdb/cli-protonj2/src/main/java/com/redhat/mqe/CliProtonJ2Receiver.java#L223 > Remote close with [condition = amqp:connection:forced] leads to exception > thrown even though reconnect is enabled > - > > Key: PROTON-2618 > URL: https://issues.apache.org/jira/browse/PROTON-2618 > Project: Qpid Proton > Issue Type: Bug > Components: protonj2 >Affects Versions: protonj2-1.0.0-M9 >Reporter: Jiri Daněk >Assignee: Timothy A. Bish >Priority: Major > > According to previous issues in the Qpid Proton and Qpid JMS projects, the > AMQP clients are supposed to initiate reconnect in this sitiuation. > * QPIDJMS-395 > * PROTON-1416, PROTON-1423 > * (PROTON-2204) > Instead, I get an exception > {noformat} > [15:38:33] [INFO] dtestlib.Test :: stderr: > > org.apache.qpid.protonj2.client.exceptions.ClientConnectionRemotelyClosedException: > Received error from remote peer without description [condition = > amqp:connection:forced] > at > org.apache.qpid.protonj2.client.impl.ClientExceptionSupport.convertToConnectionClosedException(ClientExceptionSupport.java:128) > at > org.apache.qpid.protonj2.client.impl.ClientLinkType.handleParentEndpointClosed(ClientLinkType.java:378) > at > org.apache.qpid.protonj2.engine.impl.ProtonLink.fireParentEndpointClosed(ProtonLink.java:517) > at > org.apache.qpid.protonj2.engine.impl.ProtonLink.handleConnectionLocallyClosed(ProtonLink.java:590) > at > org.apache.qpid.protonj2.engine.impl.ProtonSession.lambda$handleConnectionLocallyClosed$1(ProtonSession.java:467) > at java.base/java.lang.Iterable.forEach(Iterable.java:75) > at > org.apache.qpid.protonj2.engine.impl.ProtonSession.handleConnectionLocallyClosed(ProtonSession.java:467) > at > org.apache.qpid.protonj2.engine.impl.ProtonConnection.lambda$close$0(ProtonConnection.java:144) > at java.base/java.lang.Iterable.forEach(Iterable.java:75) > at > org.apache.qpid.protonj2.engine.impl.ProtonConnection.close(ProtonConnection.java:144) > at > org.apache.qpid.protonj2.engine.impl.ProtonConnection.close(ProtonConnection.java:63) > at > org.apache.qpid.protonj2.client.impl.ClientConnection.handleRemoteClose(ClientConnection.java:694) > at > org.apache.qpid.protonj2.engine.impl.ProtonEndpoint.fireRemoteClose(ProtonEndpoint.java:139) > at > org.apache.qpid.protonj2.engine.impl.ProtonConnection.handleClose(ProtonConnection.java:449) > at > org.apache.qpid.protonj2.engine.impl.ProtonPerformativeHandler.handleClose(ProtonPerformativeHandler.java:158) > at > org.apache.qpid.protonj2.engine.impl.ProtonPerformativeHandler.handleClose(ProtonPerformativeHandler.java:43) > at org.apache.qpid.protonj2.types.transport.Close.invoke(Close.java:74) > at > org.apache.qpid.protonj2.engine.IncomingAMQPEnvelope.invoke(IncomingAMQPEnvelope.java:69) > at > org.apache.qpid.protonj2.engine.impl.ProtonPerformativeHandler.handleRead(ProtonPerformativeHandler.java:68) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.invokeHandlerRead(ProtonEngineHandlerContext.java:187) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.fireRead(ProtonEngineHandlerContext.java:147) > at > org.apache.qpid.protonj2.engine.impl.ProtonFrameLoggingHandler.handleRead(ProtonFrameLoggingHandler.java:101) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.invokeHandlerRead(ProtonEngineHandlerContext.java:187) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.fireRead(ProtonEngineHandlerContext.java:147) > at > org.apache.qpid.protonj2.engine.impl.ProtonFrameDecodingHandler$FrameBodyParsingStage.parse(ProtonFrameDecodingHandler.java:363) > at > org.apache.qpid.protonj2.engine.impl.ProtonFrameDecodingHandler$FrameSizeParsingStage.parse(ProtonFrameDecodingHandler.java:259) > at > org.apache.qpid.protonj2.engine.impl.ProtonFrameDecodingHandler.handleRead(ProtonFrameDecodingHandler.java:99) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.invokeHandlerRead(ProtonEngineHandlerContext.java:199) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.fireRead(ProtonEngineHandlerContext.java:132) > at > org.apache.qpid.protonj2.engine.impl.ProtonEnginePipeline.fireRead(ProtonEnginePipeline.java:301) > at
[jira] [Commented] (PROTON-2618) Remote close with [condition = amqp:connection:forced] leads to exception thrown even though reconnect is enabled
[ https://issues.apache.org/jira/browse/PROTON-2618?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17613017#comment-17613017 ] Jiri Daněk commented on PROTON-2618: The exception is from a receiver [1]. Looking at the whole stacktrace, it does not involve user code at all, it is some internal netty thread. AFAIK I can't have anything like https://developers.facebook.com/blog/post/2021/10/21/async-stack-traces-folly-improving-debugging-developer-lifecycle/ or this kind of async stacktraces https://www.jetbrains.com/help/idea/debug-asynchronous-code.html#8a217cc9. So I'll just put some prints into the code and will figure it that way! [1] It's https://github.com/rh-messaging/cli-java/blob/main/cli-protonj2/src/main/java/com/redhat/mqe/CliProtonJ2Receiver.java, although I know that pointing to that is not useful. {noformat} java -jar /var/dtests/node_data/clients/protonj2.jar receiver --timeout 120 --log-msgs dict --broker 10.88.0.3:5672 --conn-reconnect True --conn-auth-mechanisms PLAIN --conn-username admin --conn-password admin --address "test_client_reconnect_msgsrv_sigterm" --count 1 # ecode:1 (exp. True), dur.:10.56 err_cnt:1 {noformat} > Remote close with [condition = amqp:connection:forced] leads to exception > thrown even though reconnect is enabled > - > > Key: PROTON-2618 > URL: https://issues.apache.org/jira/browse/PROTON-2618 > Project: Qpid Proton > Issue Type: Bug > Components: protonj2 >Affects Versions: protonj2-1.0.0-M9 >Reporter: Jiri Daněk >Assignee: Timothy A. Bish >Priority: Major > > According to previous issues in the Qpid Proton and Qpid JMS projects, the > AMQP clients are supposed to initiate reconnect in this sitiuation. > * QPIDJMS-395 > * PROTON-1416, PROTON-1423 > * (PROTON-2204) > Instead, I get an exception > {noformat} > [15:38:33] [INFO] dtestlib.Test :: stderr: > > org.apache.qpid.protonj2.client.exceptions.ClientConnectionRemotelyClosedException: > Received error from remote peer without description [condition = > amqp:connection:forced] > at > org.apache.qpid.protonj2.client.impl.ClientExceptionSupport.convertToConnectionClosedException(ClientExceptionSupport.java:128) > at > org.apache.qpid.protonj2.client.impl.ClientLinkType.handleParentEndpointClosed(ClientLinkType.java:378) > at > org.apache.qpid.protonj2.engine.impl.ProtonLink.fireParentEndpointClosed(ProtonLink.java:517) > at > org.apache.qpid.protonj2.engine.impl.ProtonLink.handleConnectionLocallyClosed(ProtonLink.java:590) > at > org.apache.qpid.protonj2.engine.impl.ProtonSession.lambda$handleConnectionLocallyClosed$1(ProtonSession.java:467) > at java.base/java.lang.Iterable.forEach(Iterable.java:75) > at > org.apache.qpid.protonj2.engine.impl.ProtonSession.handleConnectionLocallyClosed(ProtonSession.java:467) > at > org.apache.qpid.protonj2.engine.impl.ProtonConnection.lambda$close$0(ProtonConnection.java:144) > at java.base/java.lang.Iterable.forEach(Iterable.java:75) > at > org.apache.qpid.protonj2.engine.impl.ProtonConnection.close(ProtonConnection.java:144) > at > org.apache.qpid.protonj2.engine.impl.ProtonConnection.close(ProtonConnection.java:63) > at > org.apache.qpid.protonj2.client.impl.ClientConnection.handleRemoteClose(ClientConnection.java:694) > at > org.apache.qpid.protonj2.engine.impl.ProtonEndpoint.fireRemoteClose(ProtonEndpoint.java:139) > at > org.apache.qpid.protonj2.engine.impl.ProtonConnection.handleClose(ProtonConnection.java:449) > at > org.apache.qpid.protonj2.engine.impl.ProtonPerformativeHandler.handleClose(ProtonPerformativeHandler.java:158) > at > org.apache.qpid.protonj2.engine.impl.ProtonPerformativeHandler.handleClose(ProtonPerformativeHandler.java:43) > at org.apache.qpid.protonj2.types.transport.Close.invoke(Close.java:74) > at > org.apache.qpid.protonj2.engine.IncomingAMQPEnvelope.invoke(IncomingAMQPEnvelope.java:69) > at > org.apache.qpid.protonj2.engine.impl.ProtonPerformativeHandler.handleRead(ProtonPerformativeHandler.java:68) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.invokeHandlerRead(ProtonEngineHandlerContext.java:187) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.fireRead(ProtonEngineHandlerContext.java:147) > at > org.apache.qpid.protonj2.engine.impl.ProtonFrameLoggingHandler.handleRead(ProtonFrameLoggingHandler.java:101) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.invokeHandlerRead(ProtonEngineHandlerContext.java:187) > at >
[jira] [Commented] (PROTON-2618) Remote close with [condition = amqp:connection:forced] leads to exception thrown even though reconnect is enabled
[ https://issues.apache.org/jira/browse/PROTON-2618?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17613013#comment-17613013 ] Timothy A. Bish commented on PROTON-2618: - Is the exception from a send call, or someplace else. Need some more details as it isn't clear yet. > Remote close with [condition = amqp:connection:forced] leads to exception > thrown even though reconnect is enabled > - > > Key: PROTON-2618 > URL: https://issues.apache.org/jira/browse/PROTON-2618 > Project: Qpid Proton > Issue Type: Bug > Components: protonj2 >Affects Versions: protonj2-1.0.0-M9 >Reporter: Jiri Daněk >Assignee: Timothy A. Bish >Priority: Major > > According to previous issues in the Qpid Proton and Qpid JMS projects, the > AMQP clients are supposed to initiate reconnect in this sitiuation. > * QPIDJMS-395 > * PROTON-1416, PROTON-1423 > * (PROTON-2204) > Instead, I get an exception > {noformat} > [15:38:33] [INFO] dtestlib.Test :: stderr: > > org.apache.qpid.protonj2.client.exceptions.ClientConnectionRemotelyClosedException: > Received error from remote peer without description [condition = > amqp:connection:forced] > at > org.apache.qpid.protonj2.client.impl.ClientExceptionSupport.convertToConnectionClosedException(ClientExceptionSupport.java:128) > at > org.apache.qpid.protonj2.client.impl.ClientLinkType.handleParentEndpointClosed(ClientLinkType.java:378) > at > org.apache.qpid.protonj2.engine.impl.ProtonLink.fireParentEndpointClosed(ProtonLink.java:517) > at > org.apache.qpid.protonj2.engine.impl.ProtonLink.handleConnectionLocallyClosed(ProtonLink.java:590) > at > org.apache.qpid.protonj2.engine.impl.ProtonSession.lambda$handleConnectionLocallyClosed$1(ProtonSession.java:467) > at java.base/java.lang.Iterable.forEach(Iterable.java:75) > at > org.apache.qpid.protonj2.engine.impl.ProtonSession.handleConnectionLocallyClosed(ProtonSession.java:467) > at > org.apache.qpid.protonj2.engine.impl.ProtonConnection.lambda$close$0(ProtonConnection.java:144) > at java.base/java.lang.Iterable.forEach(Iterable.java:75) > at > org.apache.qpid.protonj2.engine.impl.ProtonConnection.close(ProtonConnection.java:144) > at > org.apache.qpid.protonj2.engine.impl.ProtonConnection.close(ProtonConnection.java:63) > at > org.apache.qpid.protonj2.client.impl.ClientConnection.handleRemoteClose(ClientConnection.java:694) > at > org.apache.qpid.protonj2.engine.impl.ProtonEndpoint.fireRemoteClose(ProtonEndpoint.java:139) > at > org.apache.qpid.protonj2.engine.impl.ProtonConnection.handleClose(ProtonConnection.java:449) > at > org.apache.qpid.protonj2.engine.impl.ProtonPerformativeHandler.handleClose(ProtonPerformativeHandler.java:158) > at > org.apache.qpid.protonj2.engine.impl.ProtonPerformativeHandler.handleClose(ProtonPerformativeHandler.java:43) > at org.apache.qpid.protonj2.types.transport.Close.invoke(Close.java:74) > at > org.apache.qpid.protonj2.engine.IncomingAMQPEnvelope.invoke(IncomingAMQPEnvelope.java:69) > at > org.apache.qpid.protonj2.engine.impl.ProtonPerformativeHandler.handleRead(ProtonPerformativeHandler.java:68) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.invokeHandlerRead(ProtonEngineHandlerContext.java:187) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.fireRead(ProtonEngineHandlerContext.java:147) > at > org.apache.qpid.protonj2.engine.impl.ProtonFrameLoggingHandler.handleRead(ProtonFrameLoggingHandler.java:101) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.invokeHandlerRead(ProtonEngineHandlerContext.java:187) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.fireRead(ProtonEngineHandlerContext.java:147) > at > org.apache.qpid.protonj2.engine.impl.ProtonFrameDecodingHandler$FrameBodyParsingStage.parse(ProtonFrameDecodingHandler.java:363) > at > org.apache.qpid.protonj2.engine.impl.ProtonFrameDecodingHandler$FrameSizeParsingStage.parse(ProtonFrameDecodingHandler.java:259) > at > org.apache.qpid.protonj2.engine.impl.ProtonFrameDecodingHandler.handleRead(ProtonFrameDecodingHandler.java:99) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.invokeHandlerRead(ProtonEngineHandlerContext.java:199) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.fireRead(ProtonEngineHandlerContext.java:132) > at > org.apache.qpid.protonj2.engine.impl.ProtonEnginePipeline.fireRead(ProtonEnginePipeline.java:301) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngine.ingest(ProtonEngine.java:227) > at >
[jira] [Commented] (PROTON-2618) Remote close with [condition = amqp:connection:forced] leads to exception thrown even though reconnect is enabled
[ https://issues.apache.org/jira/browse/PROTON-2618?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17613012#comment-17613012 ] Jiri Daněk commented on PROTON-2618: Can I catch this, or configure the client to let me handle the exception, or simply have it to initiate reconnect? > Remote close with [condition = amqp:connection:forced] leads to exception > thrown even though reconnect is enabled > - > > Key: PROTON-2618 > URL: https://issues.apache.org/jira/browse/PROTON-2618 > Project: Qpid Proton > Issue Type: Bug > Components: protonj2 >Affects Versions: protonj2-1.0.0-M9 >Reporter: Jiri Daněk >Assignee: Timothy A. Bish >Priority: Major > > According to previous issues in the Qpid Proton and Qpid JMS projects, the > AMQP clients are supposed to initiate reconnect in this sitiuation. > * QPIDJMS-395 > * PROTON-1416, PROTON-1423 > * (PROTON-2204) > Instead, I get an exception > {noformat} > [15:38:33] [INFO] dtestlib.Test :: stderr: > > org.apache.qpid.protonj2.client.exceptions.ClientConnectionRemotelyClosedException: > Received error from remote peer without description [condition = > amqp:connection:forced] > at > org.apache.qpid.protonj2.client.impl.ClientExceptionSupport.convertToConnectionClosedException(ClientExceptionSupport.java:128) > at > org.apache.qpid.protonj2.client.impl.ClientLinkType.handleParentEndpointClosed(ClientLinkType.java:378) > at > org.apache.qpid.protonj2.engine.impl.ProtonLink.fireParentEndpointClosed(ProtonLink.java:517) > at > org.apache.qpid.protonj2.engine.impl.ProtonLink.handleConnectionLocallyClosed(ProtonLink.java:590) > at > org.apache.qpid.protonj2.engine.impl.ProtonSession.lambda$handleConnectionLocallyClosed$1(ProtonSession.java:467) > at java.base/java.lang.Iterable.forEach(Iterable.java:75) > at > org.apache.qpid.protonj2.engine.impl.ProtonSession.handleConnectionLocallyClosed(ProtonSession.java:467) > at > org.apache.qpid.protonj2.engine.impl.ProtonConnection.lambda$close$0(ProtonConnection.java:144) > at java.base/java.lang.Iterable.forEach(Iterable.java:75) > at > org.apache.qpid.protonj2.engine.impl.ProtonConnection.close(ProtonConnection.java:144) > at > org.apache.qpid.protonj2.engine.impl.ProtonConnection.close(ProtonConnection.java:63) > at > org.apache.qpid.protonj2.client.impl.ClientConnection.handleRemoteClose(ClientConnection.java:694) > at > org.apache.qpid.protonj2.engine.impl.ProtonEndpoint.fireRemoteClose(ProtonEndpoint.java:139) > at > org.apache.qpid.protonj2.engine.impl.ProtonConnection.handleClose(ProtonConnection.java:449) > at > org.apache.qpid.protonj2.engine.impl.ProtonPerformativeHandler.handleClose(ProtonPerformativeHandler.java:158) > at > org.apache.qpid.protonj2.engine.impl.ProtonPerformativeHandler.handleClose(ProtonPerformativeHandler.java:43) > at org.apache.qpid.protonj2.types.transport.Close.invoke(Close.java:74) > at > org.apache.qpid.protonj2.engine.IncomingAMQPEnvelope.invoke(IncomingAMQPEnvelope.java:69) > at > org.apache.qpid.protonj2.engine.impl.ProtonPerformativeHandler.handleRead(ProtonPerformativeHandler.java:68) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.invokeHandlerRead(ProtonEngineHandlerContext.java:187) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.fireRead(ProtonEngineHandlerContext.java:147) > at > org.apache.qpid.protonj2.engine.impl.ProtonFrameLoggingHandler.handleRead(ProtonFrameLoggingHandler.java:101) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.invokeHandlerRead(ProtonEngineHandlerContext.java:187) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.fireRead(ProtonEngineHandlerContext.java:147) > at > org.apache.qpid.protonj2.engine.impl.ProtonFrameDecodingHandler$FrameBodyParsingStage.parse(ProtonFrameDecodingHandler.java:363) > at > org.apache.qpid.protonj2.engine.impl.ProtonFrameDecodingHandler$FrameSizeParsingStage.parse(ProtonFrameDecodingHandler.java:259) > at > org.apache.qpid.protonj2.engine.impl.ProtonFrameDecodingHandler.handleRead(ProtonFrameDecodingHandler.java:99) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.invokeHandlerRead(ProtonEngineHandlerContext.java:199) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngineHandlerContext.fireRead(ProtonEngineHandlerContext.java:132) > at > org.apache.qpid.protonj2.engine.impl.ProtonEnginePipeline.fireRead(ProtonEnginePipeline.java:301) > at > org.apache.qpid.protonj2.engine.impl.ProtonEngine.ingest(ProtonEngine.java:227) > at