[OPNFLWJAVA-12] IllegalArgumentException while deserialization of openflow 1.0 flow table stats Created: 24/Dec/13  Updated: 25/Dec/13  Resolved: 25/Dec/13

Status: Resolved
Project: openflowjava
Component/s: General
Affects Version/s: unspecified
Fix Version/s: None

Type: Improvement
Reporter: Anil Vishnoi Assignee: Anil Vishnoi
Resolution: Cannot Reproduce Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: Linux
Platform: PC



 Description   

I see following exception while library do de-serialization of openflow 1.0 flow table stats.
You can recreate the scenario by connecting the openflow 1.0 switch to the controller executing latest code.

2013-12-24 19:30:35.255 IST [nioEventLoopGroup-8-1] ERROR o.o.o.protocol.impl.core.OFDecoder - Invalid range: -9007199252788452756, expected: [[0‥18446744073709551615]].
java.lang.IllegalArgumentException: Invalid range: -9007199252788452756, expected: [[0‥18446744073709551615]].
at org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.table._case.multipart.reply.table.TableStatsBuilder.setLookupCount(TableStatsBuilder.java:108) ~[na:na]
at org.opendaylight.openflowjava.protocol.impl.deserialization.factories.OF10StatsReplyMessageFactory.setTable(OF10StatsReplyMessageFactory.java:203) ~[na:na]
at org.opendaylight.openflowjava.protocol.impl.deserialization.factories.OF10StatsReplyMessageFactory.bufferToMessage(OF10StatsReplyMessageFactory.java:102) ~[na:na]
at org.opendaylight.openflowjava.protocol.impl.deserialization.factories.OF10StatsReplyMessageFactory.bufferToMessage(OF10StatsReplyMessageFactory.java:59) ~[na:na]
at org.opendaylight.openflowjava.protocol.impl.deserialization.DeserializationFactory.bufferToMessage(DeserializationFactory.java:41) ~[na:na]
at org.opendaylight.openflowjava.protocol.impl.core.OFDecoder.decode(OFDecoder.java:47) ~[na:na]
at org.opendaylight.openflowjava.protocol.impl.core.OFDecoder.decode(OFDecoder.java:26) ~[na:na]
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:89) ~[na:na]
at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) ~[na:na]
at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) ~[na:na]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:173) ~[na:na]
at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) ~[na:na]
at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) ~[na:na]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:173) ~[na:na]
at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) ~[na:na]
at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) ~[na:na]
at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:253) ~[na:na]
at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) ~[na:na]
at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) ~[na:na]
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:785) ~[na:na]
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:100) ~[na:na]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:480) ~[na:na]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:447) ~[na:na]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:341) ~[na:na]
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:101) ~[na:na]
at java.lang.Thread.run(Thread.java:724) ~[na:1.7.0_25]



 Comments   
Comment by Michal Polkorab [ 25/Dec/13 ]

Hello,

this issue should be fixed by following change: https://git.opendaylight.org/gerrit/#/c/3921/

I will add tests soon.

Note: Please try fetching the change, because I don't have merge rights for openflowjava project and our "merger" is on vacation (as our whole company).

Please let me know if this change fixed the issue.

Regards
Michal

Generated at Wed Feb 07 20:28:43 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.