[ https://issues.apache.org/jira/browse/AMQ-4920?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13956818#comment-13956818 ]
Gurinder commented on AMQ-4920: ------------------------------- So essentially multiple topic consumers even running from different instances do not work. This pretty much makes publish-subscribe system unworkable since in any production environment you would have more than 1 subscriber to the same topic. Or is there any other way.? Btw any idea when 5.10 is coming out > AmqpErrorException occurs with multiple concurrent amqp topic consumers > ----------------------------------------------------------------------- > > Key: AMQ-4920 > URL: https://issues.apache.org/jira/browse/AMQ-4920 > Project: ActiveMQ > Issue Type: Bug > Reporter: Kevin Earls > Assignee: Kevin Earls > Attachments: rp.out > > > I'll add a test to reproduce this. There are currently 2 problems. The more > frequent one looks like: org.apache.qpid.amqp_1_0.type.AmqpErrorException > at > org.apache.qpid.amqp_1_0.codec.ValueHandler.readConstructor(ValueHandler.java:99) > at > org.apache.qpid.amqp_1_0.codec.ValueHandler.parse(ValueHandler.java:90) > at > org.apache.qpid.amqp_1_0.codec.ValueHandler.readConstructor(ValueHandler.java:105) > at > org.apache.qpid.amqp_1_0.codec.ValueHandler.parse(ValueHandler.java:90) > … repeated many times > at > org.apache.qpid.amqp_1_0.codec.ValueHandler.readConstructor(ValueHandler.java:105) > at > org.apache.qpid.amqp_1_0.codec.ValueHandler.parse(ValueHandler.java:90) > at > org.apache.qpid.amqp_1_0.messaging.SectionDecoderImpl.parseAll(SectionDecoderImpl.java:49) > at org.apache.qpid.amqp_1_0.client.Receiver.receive(Receiver.java:280) > at > org.apache.qpid.amqp_1_0.jms.impl.MessageConsumerImpl.receive0(MessageConsumerImpl.java:286) > at > org.apache.qpid.amqp_1_0.jms.impl.MessageConsumerImpl.receiveImpl(MessageConsumerImpl.java:255) > at > org.apache.qpid.amqp_1_0.jms.impl.MessageConsumerImpl.receive(MessageConsumerImpl.java:238) > at > org.apache.qpid.amqp_1_0.jms.impl.MessageConsumerImpl.receive(MessageConsumerImpl.java:56) > at > org.apache.activemq.transport.amqp.ENTMQ466ConsumerThread.run(ENTMQ466Test.java:123) > This occurs at the line "final EncodedMessage amqp = > outboundTransformer.transform(jms);" in the ConsumerContext.pumpOutbound() > method of AmqpProtocolConverter(). This call sometimes returns with its > content (amqp.getArray()) set to all zeros. > On those messages this line > LOG.info("In pumpOutbound, setting currentBuffer to offset {} length {} > content [{}]", amqp.getArrayOffset(), amqp.getLength(), amqp.getArray()); > returns: > 2013-11-26 17:19:16,680 [calhost] Task-3] - INFO AmqpProtocolConverter - In > pumpOutbound, setting currentBuffer to offset 0 length 162 content [[0, 0, 0, > 0, 0, \ > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0,\ > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0\ > , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]] > At the root of this, outboundTransformer is a (proton) > AutoOutboundTransformer. It calls AMQPNativeOutboundTransformer.transform(), > which calls msg.readBytes(data), which sometimes writes all 0s to data. Here > msg is an ActiveMQBytesMessage. -- This message was sent by Atlassian JIRA (v6.2#6252)