You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Robbie Gemmell (JIRA)" <ji...@apache.org> on 2019/03/05 15:17:00 UTC

[jira] [Commented] (ARTEMIS-2268) Encountered exception [org.apache.activemq.artemis.protocol.amqp.proton.ProtonServerReceiverContext] Expected Symbol type but found encoding: -95: org.apache.qpid.proton.ProtonException: Expected Symbol type but found encoding: -95

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

Robbie Gemmell commented on ARTEMIS-2268:
-----------------------------------------

Do you have a reproducer that works against 2.6.4 and fails against 2.7.0-SNAPSHOT?

The exception appears to be indicating a string type encoding is illegally being found in the received message where there should instead be a symbol type encoding.

> Encountered exception [org.apache.activemq.artemis.protocol.amqp.proton.ProtonServerReceiverContext] Expected Symbol type but found encoding: -95: org.apache.qpid.proton.ProtonException: Expected Symbol type but found encoding: -95
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: ARTEMIS-2268
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-2268
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>            Reporter: Leo Provido
>            Priority: Major
>
> We were trying out some existing tests with the latest build of Artemis (2.7.0-SNAPSHOT - as of 27-Feb-2019) and we encountered an exception thrown. When this occurs, our consumer is replying to a received message (i.e. sending a message to another queue on the same broker).  The exception message that is shown in the Artemis log is also reported back via the AMQP client library.
> Below shows the exception and stack trace found in artemis-service.out.log.
> 2019-03-05 16:17:44,954 WARN  [org.apache.activemq.artemis.protocol.amqp.proton.ProtonServerReceiverContext] Expected Symbol type but found encoding: -95: org.apache.qpid.proton.ProtonException: Expected Symbol type but found encoding: -95
>       at org.apache.qpid.proton.codec.DecoderImpl.readSymbol(DecoderImpl.java:771) [proton-j-0.31.0.jar:]
>       at org.apache.qpid.proton.codec.messaging.FastPathMessageAnnotationsType.readValue(FastPathMessageAnnotationsType.java:126) [proton-j-0.31.0.jar:]
>       at org.apache.qpid.proton.codec.messaging.FastPathMessageAnnotationsType.readValue(FastPathMessageAnnotationsType.java:43) [proton-j-0.31.0.jar:]
>       at org.apache.activemq.artemis.protocol.amqp.broker.AMQPMessage.scanMessageData(AMQPMessage.java:480) [artemis-amqp-protocol-2.7.0-SNAPSHOT.jar:2.7.0-SNAPSHOT]
>       at org.apache.activemq.artemis.protocol.amqp.broker.AMQPMessage.ensureMessageDataScanned(AMQPMessage.java:437) [artemis-amqp-protocol-2.7.0-SNAPSHOT.jar:2.7.0-SNAPSHOT]
>       at org.apache.activemq.artemis.protocol.amqp.broker.AMQPMessage.<init>(AMQPMessage.java:177) [artemis-amqp-protocol-2.7.0-SNAPSHOT.jar:2.7.0-SNAPSHOT]
>       at org.apache.activemq.artemis.protocol.amqp.broker.AMQPSessionCallback.serverSend(AMQPSessionCallback.java:433) [artemis-amqp-protocol-2.7.0-SNAPSHOT.jar:2.7.0-SNAPSHOT]
>       at org.apache.activemq.artemis.protocol.amqp.proton.ProtonServerReceiverContext.actualDelivery(ProtonServerReceiverContext.java:304) [artemis-amqp-protocol-2.7.0-SNAPSHOT.jar:2.7.0-SNAPSHOT]
>       at org.apache.activemq.artemis.protocol.amqp.proton.ProtonServerReceiverContext.onMessage(ProtonServerReceiverContext.java:299) [artemis-amqp-protocol-2.7.0-SNAPSHOT.jar:2.7.0-SNAPSHOT]
>       at org.apache.activemq.artemis.protocol.amqp.proton.AMQPConnectionContext.onDelivery(AMQPConnectionContext.java:541) [artemis-amqp-protocol-2.7.0-SNAPSHOT.jar:2.7.0-SNAPSHOT]
>       at org.apache.activemq.artemis.protocol.amqp.proton.handler.Events.dispatch(Events.java:92) [artemis-amqp-protocol-2.7.0-SNAPSHOT.jar:2.7.0-SNAPSHOT]
>       at org.apache.activemq.artemis.protocol.amqp.proton.handler.ProtonHandler.dispatch(ProtonHandler.java:484) [artemis-amqp-protocol-2.7.0-SNAPSHOT.jar:2.7.0-SNAPSHOT]
>       at org.apache.activemq.artemis.protocol.amqp.proton.handler.ProtonHandler.flush(ProtonHandler.java:284) [artemis-amqp-protocol-2.7.0-SNAPSHOT.jar:2.7.0-SNAPSHOT]
>       at org.apache.activemq.artemis.protocol.amqp.proton.handler.ProtonHandler.inputBuffer(ProtonHandler.java:241) [artemis-amqp-protocol-2.7.0-SNAPSHOT.jar:2.7.0-SNAPSHOT]
>       at org.apache.activemq.artemis.protocol.amqp.proton.AMQPConnectionContext.inputBuffer(AMQPConnectionContext.java:170) [artemis-amqp-protocol-2.7.0-SNAPSHOT.jar:2.7.0-SNAPSHOT]
>       at org.apache.activemq.artemis.protocol.amqp.broker.ActiveMQProtonRemotingConnection.bufferReceived(ActiveMQProtonRemotingConnection.java:149) [artemis-amqp-protocol-2.7.0-SNAPSHOT.jar:2.7.0-SNAPSHOT]
>       at org.apache.activemq.artemis.core.remoting.server.impl.RemotingServiceImpl$DelegatingBufferHandler.bufferReceived(RemotingServiceImpl.java:643) [artemis-server-2.7.0-SNAPSHOT.jar:2.7.0-SNAPSHOT]
>       at org.apache.activemq.artemis.core.remoting.impl.netty.ActiveMQChannelHandler.channelRead(ActiveMQChannelHandler.java:73) [artemis-core-client-2.7.0-SNAPSHOT.jar:2.7.0-SNAPSHOT]
>       at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [netty-all-4.1.28.Final.jar:4.1.28.Final]
>       at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [netty-all-4.1.28.Final.jar:4.1.28.Final]
>       at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [netty-all-4.1.28.Final.jar:4.1.28.Final]
>       at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1434) [netty-all-4.1.28.Final.jar:4.1.28.Final]
>       at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [netty-all-4.1.28.Final.jar:4.1.28.Final]
>       at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [netty-all-4.1.28.Final.jar:4.1.28.Final]
>       at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:965) [netty-all-4.1.28.Final.jar:4.1.28.Final]
>       at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163) [netty-all-4.1.28.Final.jar:4.1.28.Final]
>       at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:646) [netty-all-4.1.28.Final.jar:4.1.28.Final]
>       at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:581) [netty-all-4.1.28.Final.jar:4.1.28.Final]
>       at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:498) [netty-all-4.1.28.Final.jar:4.1.28.Final]
>       at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:460) [netty-all-4.1.28.Final.jar:4.1.28.Final]
>       at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884) [netty-all-4.1.28.Final.jar:4.1.28.Final]
>       at org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118) [artemis-commons-2.7.0-SNAPSHOT.jar:2.7.0-SNAPSHOT]
> The Exception that gets thrown is in the code below, which can be found in https://github.com/apache/qpid-proton-j/blob/master/proton-j/src/main/java/org/apache/qpid/proton/codec/DecoderImpl.java#L757
> 	    public Symbol readSymbol(final Symbol defaultValue)
> 	    {
> 	        byte encodingCode = _buffer.get();
> 	
> 	        switch (encodingCode)
> 	        {
> 	            case EncodingCodes.SYM8:
> 	                return (Symbol) _constructors[EncodingCodes.SYM8 & 0xff].readValue();
> 	            case EncodingCodes.SYM32:
> 	                return (Symbol) _constructors[EncodingCodes.SYM32 & 0xff].readValue();
> 	            case EncodingCodes.NULL:
> 	                return defaultValue;
> 	            default:
> 	                throw new ProtonException("Expected Symbol type but found encoding: " + encodingCode);
> 	        }
> 	    }
> From the exception message (org.apache.qpid.proton.ProtonException: Expected Symbol type but found encoding: -95), encoding code has symbol -95 which does not match any of the switch cases SYM8, SYM32 and NULL.
> Note that this issue does not occur in Artemis 2.6.3 and 2.6.4 but does occur in the latest Artemis build (2.7.0-SNAPSHOT - as of 27-Feb-2019). 



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