|
Version:
master (db2760aa10bad041a6357b4af855b0a48bb1ea48)
Steps to reproduce:
1. Start controller and OF10 switch.
2. Disable statistics manager.
POST /restconf/operations/statistics-manager-control:change-statistics-work-mode
Body: {"input": {"mode": FULLY_DISABLED}}
3. Install a flow entry into OF10 switch with specifying timeout and SEND_FLOW_REM flag.
POST /restconf/operations/sal-flow:add-flow
Body:
{
"input": {
"node": "/opendaylight-inventory:nodes/opendaylight-inventory:node[opendaylight-inventory:id=\"openflow:1\"]",
"table_id": 0,
"idle-timeout": 10,
"hard-timeout": 0,
"priority": 10,
"match": {
"ethernet-match": { "ethernet-type":
{ "type": 2048 }
},
"ip-match":
{ "ip-protocol": 1 }
,
"icmpv4-match":
{ "icmpv4-type": 8, "icmpv4-code": 0 }
},
"flags": "SEND_FLOW_REM"
}
}
4. Wait for the OF10 switch to send FLOW_REMOVED message.
NPE is caused when FLOW_REMOVED message is received.
2016-05-24 21:44:30,713 | WARN | entLoopGroup-5-8 | DefaultChannelPipeline | 132 - io.netty.common - 4.0.36.Final | An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.
java.lang.NullPointerException
at org.opendaylight.openflowplugin.impl.translator.FlowRemovedTranslator.translate(FlowRemovedTranslator.java:33)[196:org.opendaylight.openflowplugin.impl:0.3.0.SNAPSHOT]
at org.opendaylight.openflowplugin.impl.translator.FlowRemovedTranslator.translate(FlowRemovedTranslator.java:24)[196:org.opendaylight.openflowplugin.impl:0.3.0.SNAPSHOT]
at org.opendaylight.openflowplugin.impl.device.DeviceContextImpl.processFlowRemovedMessage(DeviceContextImpl.java:401)[196:org.opendaylight.openflowplugin.impl:0.3.0.SNAPSHOT]
at org.opendaylight.openflowplugin.impl.device.listener.OpenflowProtocolListenerFullImpl.onFlowRemovedMessage(OpenflowProtocolListenerFullImpl.java:70)[196:org.opendaylight.openflowplugin.impl:0.3.0.SNAPSHOT]
at org.opendaylight.openflowjava.protocol.impl.core.connection.ConnectionAdapterImpl.consumeDeviceMessage(ConnectionAdapterImpl.java:117)[192:org.opendaylight.openflowjava.openflow-protocol-impl:0.8.0.SNAPSHOT]
at org.opendaylight.openflowjava.protocol.impl.core.connection.AbstractConnectionAdapterStatistics.consume(AbstractConnectionAdapterStatistics.java:66)[192:org.opendaylight.openflowjava.openflow-protocol-impl:0.8.0.SNAPSHOT]
at org.opendaylight.openflowjava.protocol.impl.core.connection.ConnectionAdapterImpl.consume(ConnectionAdapterImpl.java:43)[192:org.opendaylight.openflowjava.openflow-protocol-impl:0.8.0.SNAPSHOT]
at org.opendaylight.openflowjava.protocol.impl.core.DelegatingInboundHandler.channelRead(DelegatingInboundHandler.java:46)[192:org.opendaylight.openflowjava.openflow-protocol-impl:0.8.0.SNAPSHOT]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:292)[133:io.netty.transport:4.0.36.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:278)[133:io.netty.transport:4.0.36.Final]
at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86)[133:io.netty.transport:4.0.36.Final]
at org.opendaylight.openflowjava.protocol.impl.core.connection.AbstractOutboundQueueManager.channelRead(AbstractOutboundQueueManager.java:195)[192:org.opendaylight.openflowjava.openflow-protocol-impl:0.8.0.SNAPSHOT]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:292)[133:io.netty.transport:4.0.36.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:278)[133:io.netty.transport:4.0.36.Final]
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)[134:io.netty.codec:4.0.36.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:292)[133:io.netty.transport:4.0.36.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:278)[133:io.netty.transport:4.0.36.Final]
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:277)[134:io.netty.codec:4.0.36.Final]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:264)[134:io.netty.codec:4.0.36.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:292)[133:io.netty.transport:4.0.36.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:278)[133:io.netty.transport:4.0.36.Final]
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:277)[134:io.netty.codec:4.0.36.Final]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:264)[134:io.netty.codec:4.0.36.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:292)[133:io.netty.transport:4.0.36.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:278)[133:io.netty.transport:4.0.36.Final]
at io.netty.handler.timeout.ReadTimeoutHandler.channelRead(ReadTimeoutHandler.java:152)[136:io.netty.handler:4.0.36.Final]
at org.opendaylight.openflowjava.protocol.impl.core.IdleHandler.channelRead(IdleHandler.java:39)[192:org.opendaylight.openflowjava.openflow-protocol-impl:0.8.0.SNAPSHOT]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:292)[133:io.netty.transport:4.0.36.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:278)[133:io.netty.transport:4.0.36.Final]
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:962)[133:io.netty.transport:4.0.36.Final]
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131)[133:io.netty.transport:4.0.36.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:528)[133:io.netty.transport:4.0.36.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:485)[133:io.netty.transport:4.0.36.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:399)[133:io.netty.transport:4.0.36.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:366)[133:io.netty.transport:4.0.36.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112)[132:io.netty.common:4.0.36.Final]
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137)[132:io.netty.common:4.0.36.Final]
at java.lang.Thread.run(Thread.java:745)[:1.8.0_92]
|