qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF subversion and git services (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (QPID-8185) [JMS AMQP 0-x][AMQP 0-8..0-91] Make sure that client closes TCP connection on failure with sending connection.close
Date Thu, 10 May 2018 16:30:00 GMT

    [ https://issues.apache.org/jira/browse/QPID-8185?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16470669#comment-16470669
] 

ASF subversion and git services commented on QPID-8185:
-------------------------------------------------------

Commit f89f6c2f45d11fc63551d0d61c17eceedd6bd247 in qpid-jms-amqp-0-x's branch refs/heads/master
from [~alex.rufous]
[ https://git-wip-us.apache.org/repos/asf?p=qpid-jms-amqp-0-x.git;h=f89f6c2 ]

QPID-8185: [JMS AMQP 0-x][AMQP 0-8..0-91] Stop handling incoming frames on session after sending
channel.close


> [JMS AMQP 0-x][AMQP 0-8..0-91] Make sure that client closes TCP connection on failure
with sending connection.close
> -------------------------------------------------------------------------------------------------------------------
>
>                 Key: QPID-8185
>                 URL: https://issues.apache.org/jira/browse/QPID-8185
>             Project: Qpid
>          Issue Type: Improvement
>          Components: JMS AMQP 0-x
>    Affects Versions: qpid-java-6.1.6, 0.18, 0.20, 0.22, 0.24, 0.26, 0.28, 0.30, 0.32,
qpid-java-6.0.8, qpid-java-client-0-x-6.3.0
>            Reporter: Alex Rudyy
>            Priority: Major
>             Fix For: qpid-java-client-0-x-6.3.1
>
>         Attachments: 0001-QPID-8185-JMS-AMQP-0-x-AMQP-0-8.0-91-Stop-handling-i.patch,
0002-QPID-8185-JMS-AMQP-0-x-AMQP-0-8.0-91-Make-sure-that-.patch
>
>
> Sending connection.close as part of {{Connection#close}} can end-up in timeout exception.
The underlying TCP connection remains open and Broker can continue sending data to the client
when session close ends up in timeout as well. The incoming frames cannot be associated with
the sessions, as the client removes session information on connection close. As result, a
number of confusing exceptions is reported.
> Here are the examples of exception stack-traces reported for the issue
> {noformat}
> INFO  Unsuspending channel threw an exception:                                      
                 [Thread-227][AMQSession.java:2374]
> org.apache.qpid.AMQTimeoutException: Server did not respond in a timely fashion
>         at org.apache.qpid.client.util.BlockingWaiter.block(BlockingWaiter.java:170)
~[qpid-client-0.32.jar:0.32]
>         at org.apache.qpid.client.protocol.BlockingMethodFrameListener.blockForFrame(BlockingMethodFrameListener.java:115)
~[qpid-client-0.32.jar:0.32]
>         at org.apache.qpid.client.protocol.AMQProtocolHandler.writeCommandFrameAndWaitForReply(AMQProtocolHandler.java:715)
~[qpid-client-0.32.jar:0.32]
>         at org.apache.qpid.client.protocol.AMQProtocolHandler.syncWrite(AMQProtocolHandler.java:736)
~[qpid-client-0.32.jar:0.32]
>         at org.apache.qpid.client.protocol.AMQProtocolHandler.syncWrite(AMQProtocolHandler.java:730)
~[qpid-client-0.32.jar:0.32]
>         at org.apache.qpid.client.AMQSession_0_8.sendSuspendChannel(AMQSession_0_8.java:728)
~[qpid-client-0.32.jar:0.32]
>         at org.apache.qpid.client.AMQSession.suspendChannel(AMQSession.java:3156) [qpid-client-0.32.jar:0.32]
>         at org.apache.qpid.client.AMQSession.startDispatcherIfNecessary(AMQSession.java:2370)
[qpid-client-0.32.jar:0.32]
>         at org.apache.qpid.client.AMQSession.syncDispatchQueue(AMQSession.java:2223)
[qpid-client-0.32.jar:0.32]
>         at org.apache.qpid.client.AMQSession.rollback(AMQSession.java:1881) [qpid-client-0.32.jar:0.32]
> ERROR Error closing session: javax.jms.JMSException: Error closing session: org.apache.qpid.AMQTimeoutException:
Server did not respond in a timely fashion [error code 408: Request Timeout][DefaultMessageListenerContainer-2][AMQConnection.java:1039]
> ERROR Error closing connection                                                      
                 [DefaultMessageListenerContainer-2][AMQConnection.java:971]
> javax.jms.JMSException: Error closing session: org.apache.qpid.AMQTimeoutException: Server
did not respond in a timely fashion [error code 408: Request Timeout]
>         at org.apache.qpid.client.AMQSession.close(AMQSession.java:764) ~[qpid-client-0.32.jar:0.32]
>         at org.apache.qpid.client.AMQSession.close(AMQSession.java:730) ~[qpid-client-0.32.jar:0.32]
>         at org.apache.qpid.client.AMQConnection.closeAllSessions(AMQConnection.java:1035)
[qpid-client-0.32.jar:0.32]
>         at org.apache.qpid.client.AMQConnection.doClose(AMQConnection.java:962) [qpid-client-0.32.jar:0.32]
>         at org.apache.qpid.client.AMQConnection.doClose(AMQConnection.java:951) [qpid-client-0.32.jar:0.32]
>         at org.apache.qpid.client.AMQConnection.doClose(AMQConnection.java:951) [qpid-client-0.32.jar:0.32]
>         at org.apache.qpid.client.AMQConnection.close(AMQConnection.java:935) [qpid-client-0.32.jar:0.32]
>         at org.apache.qpid.client.AMQConnection.close(AMQConnection.java:916) [qpid-client-0.32.jar:0.32]
>         at org.springframework.jms.connection.ConnectionFactoryUtils.releaseConnection(ConnectionFactoryUtils.java:80)
[spring-jms-4.2.3.RELEASE.jar:4.2.3.RELEASE]
>         at org.springframework.jms.listener.AbstractJmsListeningContainer.refreshSharedConnection(AbstractJmsListeningContainer.java:395)
[spring-jms-4.2.3.RELEASE.jar:4.2.3.RELEASE]
>         at org.springframework.jms.listener.DefaultMessageListenerContainer.refreshConnectionUntilSuccessful(DefaultMessageListenerContainer.java:915)
[spring-jms-4.2.3.RELEASE.jar:4.2.3.RELEASE]
>         at org.springframework.jms.listener.DefaultMessageListenerContainer.recoverAfterListenerSetupFailure(DefaultMessageListenerContainer.java:890)
[spring-jms-4.2.3.RELEASE.jar:4.2.3.RELEASE]
>         at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1061)
[spring-jms-4.2.3.RELEASE.jar:4.2.3.RELEASE]
>         at java.lang.Thread.run(Thread.java:724) [na:1.7.0_40]
> Caused by: org.apache.qpid.AMQTimeoutException: Server did not respond in a timely fashion
>         at org.apache.qpid.client.util.BlockingWaiter.block(BlockingWaiter.java:170)
~[qpid-client-0.32.jar:0.32]
>         at org.apache.qpid.client.protocol.BlockingMethodFrameListener.blockForFrame(BlockingMethodFrameListener.java:115)
~[qpid-client-0.32.jar:0.32]
>         at org.apache.qpid.client.protocol.AMQProtocolHandler.writeCommandFrameAndWaitForReply(AMQProtocolHandler.java:715)
~[qpid-client-0.32.jar:0.32]
>         at org.apache.qpid.client.protocol.AMQProtocolHandler.syncWrite(AMQProtocolHandler.java:736)
~[qpid-client-0.32.jar:0.32]
>         at org.apache.qpid.client.AMQSession_0_8.sendClose(AMQSession_0_8.java:255) ~[qpid-client-0.32.jar:0.32]
>         at org.apache.qpid.client.AMQSession.close(AMQSession.java:758) ~[qpid-client-0.32.jar:0.32]
>         ... 13 common frames omitted
> ERROR Exception processing frame                                                    
                 [IoRcvr-/127.0.0.1:58728-localhost/127.0.0.1:5681][AMQProtocolHandler.java:512]
> java.lang.NullPointerException: null
>         at org.apache.qpid.client.protocol.AMQProtocolSession.confirmConsumerCancelled(AMQProtocolSession.java:412)
~[qpid-client-0.32.jar:0.32]
>         at org.apache.qpid.client.handler.BasicCancelOkMethodHandler.methodReceived(BasicCancelOkMethodHandler.java:53)
~[qpid-client-0.32.jar:0.32]
>         at org.apache.qpid.client.handler.ClientMethodDispatcherImpl.dispatchBasicCancelOk(ClientMethodDispatcherImpl.java:160)
~[qpid-client-0.32.jar:0.32]
>         at org.apache.qpid.framing.BasicCancelOkBody.execute(BasicCancelOkBody.java:87)
~[qpid-common-0.32.jar:0.32]
>         at org.apache.qpid.client.state.AMQStateManager.methodReceived(AMQStateManager.java:116)
~[qpid-client-0.32.jar:0.32]
>         at org.apache.qpid.client.protocol.AMQProtocolHandler.methodBodyReceived(AMQProtocolHandler.java:539)
[qpid-client-0.32.jar:0.32]
>         at org.apache.qpid.client.protocol.AMQProtocolSession.methodFrameReceived(AMQProtocolSession.java:471)
~[qpid-client-0.32.jar:0.32]
>         at org.apache.qpid.framing.AMQMethodBodyImpl.handle(AMQMethodBodyImpl.java:93)
~[qpid-common-0.32.jar:0.32]
>         at org.apache.qpid.client.protocol.AMQProtocolHandler.received(AMQProtocolHandler.java:492)
[qpid-client-0.32.jar:0.32]
>         at org.apache.qpid.client.protocol.AMQProtocolHandler.received(AMQProtocolHandler.java:120)
[qpid-client-0.32.jar:0.32]
>         at org.apache.qpid.client.AMQConnectionDelegate_8_0$ReceiverClosedWaiter.received(AMQConnectionDelegate_8_0.java:538)
[qpid-client-0.32.jar:0.32]
>         at org.apache.qpid.client.AMQConnectionDelegate_8_0$ReceiverClosedWaiter.received(AMQConnectionDelegate_8_0.java:524)
[qpid-client-0.32.jar:0.32]
>         at org.apache.qpid.transport.network.io.IoReceiver.run(IoReceiver.java:163) [qpid-common-0.32.jar:0.32]
>         at java.lang.Thread.run(Thread.java:724) [na:1.7.0_40]
> {noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

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


Mime
View raw message