Alex Rudyy created QPID-6776:
--------------------------------

             Summary: [Java Client] Timeout on connection close might cause NPE 
being thrown on receiving of message from a broker for closed session
                 Key: QPID-6776
                 URL: https://issues.apache.org/jira/browse/QPID-6776
             Project: Qpid
          Issue Type: Bug
          Components: Java Client
    Affects Versions: qpid-java-6.0
            Reporter: Alex Rudyy


The issue occurred when broker was running under stress (heap memory was 
consumed by messages and new connections were repeatedly open/closed). Broker 
was performing Full GC multiple times in a row:

As result, client failed to receive session close response in time. Thus, 
timeout is not surprising. NPE followed timeout should not occur.

Here are  the client logs for the issue:
{noformat}
2015-10-06 15:47:33,962         ERROR [main] o.a.q.c.AMQConnection 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]
2015-10-06 15:47:33,969         ERROR [main] o.a.q.c.AMQConnection Error 
closing connection
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:770) 
~[qpid-client-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT]
        at org.apache.qpid.client.AMQSession.close(AMQSession.java:732) 
~[qpid-client-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT]
        at 
org.apache.qpid.client.AMQConnection.closeAllSessions(AMQConnection.java:1186) 
[qpid-client-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT]
        at 
org.apache.qpid.client.AMQConnection.doClose(AMQConnection.java:1113) 
[qpid-client-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT]
        at 
org.apache.qpid.client.AMQConnection.doClose(AMQConnection.java:1098) 
[qpid-client-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT]
        at org.apache.qpid.client.AMQConnection.close(AMQConnection.java:1081) 
[qpid-client-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT]
        at org.apache.qpid.client.AMQConnection.close(AMQConnection.java:1062) 
[qpid-client-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT]
        at 
org.apache.qpid.tools.StressTestClient.runTest(StressTestClient.java:374) 
[qpid-tools-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT]
        at 
org.apache.qpid.tools.StressTestClient.main(StressTestClient.java:122) 
[qpid-tools-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT]
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-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT]
        at 
org.apache.qpid.client.protocol.BlockingMethodFrameListener.blockForFrame(BlockingMethodFrameListener.java:115)
 ~[qpid-client-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT]
        at 
org.apache.qpid.client.AMQProtocolHandler.writeCommandFrameAndWaitForReply(AMQProtocolHandler.java:685)
 ~[qpid-client-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT]
        at 
org.apache.qpid.client.AMQProtocolHandler.syncWrite(AMQProtocolHandler.java:706)
 ~[qpid-client-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT]
        at 
org.apache.qpid.client.AMQSession_0_8.sendClose(AMQSession_0_8.java:249) 
~[qpid-client-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT]
        at org.apache.qpid.client.AMQSession.close(AMQSession.java:764) 
~[qpid-client-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT]
        ... 8 common frames omitted
2015-10-06 15:47:34,038         ERROR [IoRcvr-localhost/127.0.0.1:5672] 
o.a.q.c.AMQProtocolHandler Exception processing frame
java.lang.NullPointerException: null
        at 
org.apache.qpid.client.protocol.AMQProtocolSession.deliverMessageToAMQSession(AMQProtocolSession.java:298)
 ~[qpid-client-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT]
        at 
org.apache.qpid.client.protocol.AMQProtocolSession.contentBodyReceived(AMQProtocolSession.java:280)
 ~[qpid-client-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT]
        at org.apache.qpid.framing.ContentBody.handle(ContentBody.java:71) 
~[qpid-common-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT]
        at 
org.apache.qpid.client.AMQProtocolHandler.received(AMQProtocolHandler.java:477) 
~[qpid-client-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT]
        at 
org.apache.qpid.client.AMQConnectionDelegate_8_0$ReceiverClosedWaiter.received(AMQConnectionDelegate_8_0.java:544)
 [qpid-client-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT]
        at 
org.apache.qpid.transport.network.io.IoReceiver.run(IoReceiver.java:162) 
[qpid-common-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT]
        at java.lang.Thread.run(Thread.java:745) [na:1.7.0_67]
2015-10-06 15:47:34,039         WARN  [main] o.a.q.c.AMQConnection Error 
closing underlying protocol connection
org.apache.qpid.QpidException: Woken up due to class 
java.lang.NullPointerException
        at 
org.apache.qpid.client.util.BlockingWaiter.block(BlockingWaiter.java:195) 
~[qpid-client-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT]
        at 
org.apache.qpid.client.protocol.BlockingMethodFrameListener.blockForFrame(BlockingMethodFrameListener.java:115)
 ~[qpid-client-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT]
        at 
org.apache.qpid.client.AMQProtocolHandler.writeCommandFrameAndWaitForReply(AMQProtocolHandler.java:685)
 ~[qpid-client-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT]
        at 
org.apache.qpid.client.AMQProtocolHandler.syncWrite(AMQProtocolHandler.java:706)
 ~[qpid-client-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT]
        at 
org.apache.qpid.client.AMQProtocolHandler.closeConnection(AMQProtocolHandler.java:740)
 ~[qpid-client-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT]
        at 
org.apache.qpid.client.AMQConnectionDelegate_8_0.closeConnection(AMQConnectionDelegate_8_0.java:85)
 ~[qpid-client-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT]
        at 
org.apache.qpid.client.AMQConnection.doClose(AMQConnection.java:1129) 
[qpid-client-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT]
        at 
org.apache.qpid.client.AMQConnection.doClose(AMQConnection.java:1098) 
[qpid-client-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT]
        at org.apache.qpid.client.AMQConnection.close(AMQConnection.java:1081) 
[qpid-client-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT]
        at org.apache.qpid.client.AMQConnection.close(AMQConnection.java:1062) 
[qpid-client-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT]
        at 
org.apache.qpid.tools.StressTestClient.runTest(StressTestClient.java:374) 
[qpid-tools-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT]
        at 
org.apache.qpid.tools.StressTestClient.main(StressTestClient.java:122) 
[qpid-tools-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT]
Caused by: java.lang.NullPointerException: null
        at 
org.apache.qpid.client.protocol.AMQProtocolSession.deliverMessageToAMQSession(AMQProtocolSession.java:298)
 ~[qpid-client-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT]
        at 
org.apache.qpid.client.protocol.AMQProtocolSession.contentBodyReceived(AMQProtocolSession.java:280)
 ~[qpid-client-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT]
        at org.apache.qpid.framing.ContentBody.handle(ContentBody.java:71) 
~[qpid-common-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT]
        at 
org.apache.qpid.client.AMQProtocolHandler.received(AMQProtocolHandler.java:477) 
~[qpid-client-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT]
        at 
org.apache.qpid.client.AMQConnectionDelegate_8_0$ReceiverClosedWaiter.received(AMQConnectionDelegate_8_0.java:544)
 ~[qpid-client-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT]
        at 
org.apache.qpid.transport.network.io.IoReceiver.run(IoReceiver.java:162) 
~[qpid-common-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT]
        at java.lang.Thread.run(Thread.java:745) ~[na:1.7.0_67]
2015-10-06 15:47:34,055         ERROR [IoRcvr-localhost/127.0.0.1:5672] 
o.a.q.c.AMQProtocolHandler Exception processing frame
java.lang.UnsupportedOperationException: null
        at java.util.AbstractList.add(AbstractList.java:148) ~[na:1.7.0_67]
        at java.util.AbstractList.add(AbstractList.java:108) ~[na:1.7.0_67]
        at 
org.apache.qpid.client.message.UnprocessedMessage_0_8.receiveBody(UnprocessedMessage_0_8.java:109)
 ~[qpid-client-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT]
        at 
org.apache.qpid.client.protocol.AMQProtocolSession.contentBodyReceived(AMQProtocolSession.java:276)
 ~[qpid-client-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT]
        at org.apache.qpid.framing.ContentBody.handle(ContentBody.java:71) 
~[qpid-common-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT]
        at 
org.apache.qpid.client.AMQProtocolHandler.received(AMQProtocolHandler.java:477) 
~[qpid-client-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT]
        at 
org.apache.qpid.client.AMQConnectionDelegate_8_0$ReceiverClosedWaiter.received(AMQConnectionDelegate_8_0.java:544)
 [qpid-client-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT]
        at 
org.apache.qpid.transport.network.io.IoReceiver.run(IoReceiver.java:162) 
[qpid-common-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT]
        at java.lang.Thread.run(Thread.java:745) [na:1.7.0_67]

{noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to