[OPNFLWPLUG-1092] Exceptions Multiple entries with same key seen in openflowplugin Created: 24/Jun/20 Updated: 24/Jun/20 Resolved: 24/Jun/20 |
|
| Status: | Resolved |
| Project: | OpenFlowPlugin |
| Component/s: | None |
| Affects Version/s: | Aluminium |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Medium |
| Reporter: | Srinivas Rachakonda | Assignee: | dheenadayalan b |
| Resolution: | Won't Do | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Priority: | High |
| Description |
|
2020-06-03T13:40:54,492 | ERROR | Port Stats Request Task-2 | NodeConnectorStatsImpl | 248 - org.opendaylight.genius.interfacemanager-impl - 0.9.0.SNAPSHOT | getFlowStatistics RPC failed for node: 66642483383760 java.lang.IllegalArgumentException: Multiple entries with same key: FlowAndStatisticsMapListKey{_flowId=Uri{_value=5029fa:16:3e:92:81:45}}=FlowAndStatisticsMapList{_byteCount=Counter64{_value=7094}, _cookie=FlowCookie{_value=134419365}, _cookieMask=FlowCookie{_value=0}, _duration=Duration{_nanosecond=Counter32{_value=386000000}, _second=Counter32{_value=298}, augmentation=[]}, _flags=FlowModFlags{_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false, _nOBYTCOUNTS=false, _sENDFLOWREM=false}, _flowId=Uri{_value=5029fa:16:3e:92:81:45}, _hardTimeout=0, _idleTimeout=0, _instructions=Instructions{_instruction={InstructionKey{_order=0}=Instruction{_instruction=ApplyActionsCase{_applyActions=ApplyActions{_action={ActionKey{_order=0}=Action{_action=NxActionRegLoadNotifFlowsStatisticsUpdateApplyActionsCase{_nxRegLoad=NxRegLoad{_dst=Dst{_dstChoice=DstNxRegCase{_nxReg=interface org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmNxReg6, augmentation=[]}, _end=31, _start=0, augmentation=[]}, _value=34304, augmentation=[]}, augmentation=[]}, _order=0, augmentation=[]}, ActionKey{_order=1}=Action{_action=NxActionResubmitNotifFlowsStatisticsUpdateApplyActionsCase{_nxResubmit=NxResubmit{_inPort=65528, _table=220, augmentation=[]}, augmentation=[]}, _order=1, augmentation=[]}}, augmentation=[]}, augmentation=[]}, _order=0, augmentation=[]}}, augmentation=[]}, _match=Match{_ethernetMatch=EthernetMatch{_ethernetDestination=EthernetDestination{_address=MacAddress{_value=fa:16:3e:92:81:45}, augmentation=[]}, augmentation=[]}, _metadata=Metadata{_metadata=84372619264, _metadataMask=1099494850560, augmentation=[]}, augmentation=[]}, _packetCount=Counter64{_value=63}, _priority=20, _tableId=51, augmentation=[]} and FlowAndStatisticsMapListKey{_flowId=Uri{_value=5029fa:16:3e:92:81:45}}=FlowAndStatisticsMapList{_byteCount=Counter64{_value=9853}, _cookie=FlowCookie{_value=134550437}, _cookieMask=FlowCookie{_value=0}, _duration=Duration{_nanosecond=Counter32{_value=386000000}, _second=Counter32{_value=298}, augmentation=[]}, _flags=FlowModFlags{_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false, _nOBYTCOUNTS=false, _sENDFLOWREM=false}, _flowId=Uri{_value=5029fa:16:3e:92:81:45}, _hardTimeout=0, _idleTimeout=0, _instructions=Instructions{_instruction={InstructionKey{_order=0}=Instruction{_instruction=GoToTableCase{_goToTable=GoToTable{_tableId=51, augmentation=[]}, augmentation=[]}, _order=0, augmentation=[]}}, augmentation=[]}, _match=Match{_ethernetMatch=EthernetMatch{_ethernetSource=EthernetSource{_address=MacAddress{_value=fa:16:3e:92:81:45}, augmentation=[]}, augmentation=[]}, _metadata=Metadata{_metadata=147418930741248, _metadataMask=1152921504590069760, augmentation=[]}, augmentation=[]}, _packetCount=Counter64{_value=99}, _priority=20, _tableId=50, augmentation=[]}. To index multiple values under a key, use Multimaps.index. at com.google.common.collect.Maps.uniqueIndex(Maps.java:1338) ~[?:?] at com.google.common.collect.Maps.uniqueIndex(Maps.java:1293) ~[?:?] at org.opendaylight.yangtools.yang.binding.CodeHelpers.compatMap(CodeHelpers.java:296) ~[?:?] at org.opendaylight.yang.gen.v1.urn.opendaylight.direct.statistics.rev160511.GetFlowStatisticsOutputBuilder.setFlowAndStatisticsMapList(GetFlowStatisticsOutputBuilder.java:133) ~[?:?] at org.opendaylight.openflowplugin.impl.statistics.services.direct.singlelayer.FlowDirectStatisticsService.buildReply(FlowDirectStatisticsService.java:44) ~[?:?] at org.opendaylight.openflowplugin.impl.statistics.services.direct.singlelayer.FlowDirectStatisticsService.buildReply(FlowDirectStatisticsService.java:32) ~[?:?] at org.opendaylight.openflowplugin.impl.statistics.services.direct.AbstractDirectStatisticsService.transformResult(AbstractDirectStatisticsService.java:86) ~[?:?] at com.google.common.util.concurrent.AbstractTransformFuture$TransformFuture.doTransform(AbstractTransformFuture.java:242) ~[?:?] at com.google.common.util.concurrent.AbstractTransformFuture$TransformFuture.doTransform(AbstractTransformFuture.java:232) ~[?:?] at com.google.common.util.concurrent.AbstractTransformFuture.run(AbstractTransformFuture.java:118) ~[?:?] at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:30) ~[?:?] at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1164) ~[?:?] at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:958) ~[?:?] at com.google.common.util.concurrent.AbstractFuture.set(AbstractFuture.java:727) ~[?:?] at com.google.common.util.concurrent.SettableFuture.set(SettableFuture.java:47) ~[?:?] at org.opendaylight.openflowplugin.impl.rpc.AbstractRequestContext.setResult(AbstractRequestContext.java:38) ~[?:?] at org.opendaylight.openflowplugin.impl.device.listener.MultiMsgCollectorImpl.endCollecting(MultiMsgCollectorImpl.java:66) ~[?:?] at org.opendaylight.openflowplugin.impl.device.listener.MultiMsgCollectorImpl.addMultipartMsg(MultiMsgCollectorImpl.java:54) ~[?:?] at org.opendaylight.openflowplugin.impl.services.AbstractMultipartRequestCallback.onSuccess(AbstractMultipartRequestCallback.java:53) ~[?:?] at org.opendaylight.openflowplugin.impl.services.AbstractMultipartRequestCallback.onSuccess(AbstractMultipartRequestCallback.java:21) ~[?:?] at org.opendaylight.openflowjava.protocol.impl.core.connection.OutboundQueueEntry.complete(OutboundQueueEntry.java:113) ~[?:?] at org.opendaylight.openflowjava.protocol.impl.core.connection.StackedSegment.completeEntry(StackedSegment.java:116) ~[?:?] at org.opendaylight.openflowjava.protocol.impl.core.connection.StackedSegment.pairRequest(StackedSegment.java:157) ~[?:?] at org.opendaylight.openflowjava.protocol.impl.core.connection.AbstractStackedOutboundQueue.pairRequest(AbstractStackedOutboundQueue.java:201) ~[?:?] at org.opendaylight.openflowjava.protocol.impl.core.connection.AbstractOutboundQueueManager.onMessage(AbstractOutboundQueueManager.java:205) ~[?:?] at org.opendaylight.openflowjava.protocol.impl.core.connection.ConnectionAdapterImpl.consumeDeviceMessage(ConnectionAdapterImpl.java:154) ~[?:?] at org.opendaylight.openflowjava.protocol.impl.core.connection.AbstractConnectionAdapterStatistics.consume(AbstractConnectionAdapterStatistics.java:68) ~[?:?] at org.opendaylight.openflowjava.protocol.impl.core.connection.ConnectionAdapterImpl.consume(ConnectionAdapterImpl.java:48) ~[?:?] at org.opendaylight.openflowjava.protocol.impl.core.DelegatingInboundHandler.channelRead(DelegatingInboundHandler.java:44) ~[?:?] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[?:?] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[?:?] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[?:?] at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93) ~[?:?] at org.opendaylight.openflowjava.protocol.impl.core.connection.AbstractOutboundQueueManager.channelRead(AbstractOutboundQueueManager.java:192) ~[?:?] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[?:?] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[?:?] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[?:?] at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286) ~[?:?] at org.opendaylight.openflowjava.protocol.impl.core.IdleHandler.channelRead(IdleHandler.java:37) ~[?:?] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[?:?] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[?:?] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[?:?] at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) ~[?:?] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[?:?] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[?:?] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[?:?] at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324) ~[?:?] at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:296) ~[?:?] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[?:?] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[?:?] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[?:?] at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324) ~[?:?] at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:296) ~[?:?] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[?:?] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[?:?] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[?:?] at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[?:?] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[?:?] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[?:?] at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[?:?] at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:792) ~[?:?] at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:475) ~[?:?] at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378) ~[?:?] at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) ~[?:?] at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[?:?] at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[?:?] at java.lang.Thread.run(Thread.java:834) [?:?] |