You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Alex Rudyy (JIRA)" <ji...@apache.org> on 2019/03/01 19:56:00 UTC

[jira] [Updated] (QPID-8273) [Broker-J][AMQP 0-8..0-91] Broker can crash with BufferOverflowException when sending message to consumer

     [ https://issues.apache.org/jira/browse/QPID-8273?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alex Rudyy updated QPID-8273:
-----------------------------
    Description: 
Qpid Broker-J versions 6.0.0-7.0.6 and 7.1.0 can crash when AMQP 0-8...0-10 protocols are used in the following cases:
* on receiving malformed commands
* on receiving malformed message
* on sending malformed messages to the consumers

AMQP 1.0 is not affected by the defect



  was:
Broker can crash with BufferOverflowException when sending message to consumer. The stack trace like the one below is reported into Qpid Broker logs.
{noformat}
(o.a.q.s.Main) - Uncaught exception, shutting down.
java.nio.BufferOverflowException: null
	at java.nio.Buffer.nextPutIndex(Buffer.java:527)
	at java.nio.DirectByteBuffer.putLong(DirectByteBuffer.java:797)
	at org.apache.qpid.bytebuffer.QpidByteBuffer.putLong(QpidByteBuffer.java:500)
	at org.apache.qpid.framing.BasicContentHeaderProperties.writePropertyListPayload(BasicContentHeaderProperties.java:293)
	at org.apache.qpid.framing.BasicContentHeaderProperties.writePropertyListPayload(BasicContentHeaderProperties.java:471)
	at org.apache.qpid.framing.ContentHeaderBody.writePayload(ContentHeaderBody.java:100)
	at org.apache.qpid.framing.AMQFrame.writePayload(AMQFrame.java:69)
	at org.apache.qpid.server.protocol.v0_8.ProtocolOutputConverterImpl$CompositeAMQBodyBlock.writePayload(ProtocolOutputConverterImpl.java:542)
	at org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8Impl.writeFrame(AMQPConnection_0_8Impl.java:382)
	at org.apache.qpid.server.protocol.v0_8.ProtocolOutputConverterImpl.writeFrame(ProtocolOutputConverterImpl.java:501)
	at org.apache.qpid.server.protocol.v0_8.ProtocolOutputConverterImpl.writeMessageDeliveryUnchanged(ProtocolOutputConverterImpl.java:227)
	at org.apache.qpid.server.protocol.v0_8.ProtocolOutputConverterImpl.writeMessageDelivery(ProtocolOutputConverterImpl.java:138)
	at org.apache.qpid.server.protocol.v0_8.ProtocolOutputConverterImpl.writeMessageDelivery(ProtocolOutputConverterImpl.java:95)
	at org.apache.qpid.server.protocol.v0_8.ProtocolOutputConverterImpl.writeDeliver(ProtocolOutputConverterImpl.java:72)
	at org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8Impl$WriteDeliverMethod.deliverToClient(AMQPConnection_0_8Impl.java:1275)
	at org.apache.qpid.server.protocol.v0_8.ConsumerTarget_0_8.sendToClient(ConsumerTarget_0_8.java:452)
	at org.apache.qpid.server.protocol.v0_8.ConsumerTarget_0_8$AckConsumer.doSend(ConsumerTarget_0_8.java:274)
	at org.apache.qpid.server.consumer.AbstractConsumerTarget.sendNextMessage(AbstractConsumerTarget.java:327)
	at org.apache.qpid.server.consumer.AbstractConsumerTarget.processPending(AbstractConsumerTarget.java:99)
	at org.apache.qpid.server.protocol.v0_8.AMQChannel.processPending(AMQChannel.java:3797)
	at org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8Impl$ProcessPendingIterator$1.run(AMQPConnection_0_8Impl.java:1447)
	at org.apache.qpid.server.transport.NonBlockingConnection.processPending(NonBlockingConnection.java:375)
	at org.apache.qpid.server.transport.NonBlockingConnection.doWork(NonBlockingConnection.java:279)
	at org.apache.qpid.server.transport.NetworkConnectionScheduler.processConnection(NetworkConnectionScheduler.java:130)
	at org.apache.qpid.server.transport.SelectorThread$ConnectionProcessor.processConnection(SelectorThread.java:563)
	at org.apache.qpid.server.transport.SelectorThread$ConnectionProcessor.run(SelectorThread.java:551)
	at org.apache.qpid.server.transport.SelectorThread.run(SelectorThread.java:521)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)
{noformat}




> [Broker-J][AMQP 0-8..0-91] Broker can crash with BufferOverflowException when sending message to consumer
> ---------------------------------------------------------------------------------------------------------
>
>                 Key: QPID-8273
>                 URL: https://issues.apache.org/jira/browse/QPID-8273
>             Project: Qpid
>          Issue Type: Bug
>          Components: Broker-J
>    Affects Versions: qpid-java-6.1.6, qpid-java-broker-7.0.3, qpid-java-broker-7.0.2, qpid-java-6.0, qpid-java-6.0.1, qpid-java-6.0.2, qpid-java-6.0.3, qpid-java-6.0.4, qpid-java-6.0.5, qpid-java-6.1, qpid-java-6.0.6, qpid-java-6.1.1, qpid-java-6.1.2, qpid-java-6.0.7, qpid-java-6.1.3, qpid-java-6.0.8, qpid-java-6.1.4, qpid-java-broker-7.0.0, qpid-java-6.1.5, qpid-java-broker-7.0.1, qpid-java-6.1.7, qpid-java-broker-7.1.0, qpid-java-broker-7.0.4, qpid-java-broker-7.0.5, qpid-java-broker-7.0.6
>            Reporter: Alex Rudyy
>            Assignee: Alex Rudyy
>            Priority: Critical
>             Fix For: qpid-java-broker-7.0.7, qpid-java-broker-7.1.1
>
>
> Qpid Broker-J versions 6.0.0-7.0.6 and 7.1.0 can crash when AMQP 0-8...0-10 protocols are used in the following cases:
> * on receiving malformed commands
> * on receiving malformed message
> * on sending malformed messages to the consumers
> AMQP 1.0 is not affected by the defect



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