Keith Wall created QPID-6974:
--------------------------------

             Summary: Timeouts occurring within IoSender may result in an 
illegal AMQP stream being sent to the peer
                 Key: QPID-6974
                 URL: https://issues.apache.org/jira/browse/QPID-6974
             Project: Qpid
          Issue Type: Bug
          Components: Java Broker, Java Client
    Affects Versions: qpid-java-6.0, 0.32
            Reporter: Keith Wall


This defect applies to the legacy Java Client only for 6.0.0, and to both the 
Java Broker and Java Client for <= 0.32.

If the IoSender is in use by multiple threads, as might be the case if a client 
application were using multiple JMS Sessions on a single Conection, there is 
the possibility that if a #send() call times out, another thread might succeed 
in it #send call, if there is space becomes available in the buffer.  This 
could result in in a corrupt AMQP stream being received by the peer.  The first 
caller's buffer will be partially sent and then followed by second callers.

This would lead to same symptom as report in QPID-6206.  The following stack 
trace was generated by a 0.32 derivative.

{code}
2016-01-05 18:22:09,190 ERROR [IoReceiver - /xxx.xx.xx.xx:60578] 
(AMQProtocolEngine.java:364) - Frame decoding
org.apache.qpid.framing.AMQFrameDecodingException: Incoming frame size of 
570425344 is larger than negotiated maximum of  104857600 [error code 501: 
frame error]
        at org.apache.qpid.codec.AMQDecoder.decodable(AMQDecoder.java:342)
        at org.apache.qpid.codec.AMQDecoder.decodeBuffer(AMQDecoder.java:256)
        at 
org.apache.qpid.server.protocol.v0_8.AMQProtocolEngine$2.run(AMQProtocolEngine.java:334)
        at 
org.apache.qpid.server.protocol.v0_8.AMQProtocolEngine$2.run(AMQProtocolEngine.java:311)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:356)
        at 
org.apache.qpid.server.protocol.v0_8.AMQProtocolEngine.received(AMQProtocolEngine.java:310)
        at 
org.apache.qpid.server.protocol.v0_8.AMQProtocolEngine.received(AMQProtocolEngine.java:95)
        at 
org.apache.qpid.server.protocol.MultiVersionProtocolEngine.received(MultiVersionProtocolEngine.java:153)
        at 
org.apache.qpid.server.protocol.MultiVersionProtocolEngine.received(MultiVersionProtocolEngine.java:51)
        at 
org.apache.qpid.transport.network.io.IoReceiver.run(IoReceiver.java:161)
{code}









--
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