[NETVIRT-1678] multiple values under a key, use Multimaps.index. at com.google.common.collect.Maps.uniqueIndex(Maps.java:1338) ~[bundleFile:?] Created: 03/Jul/20 Updated: 17/Jul/20 Resolved: 17/Jul/20 |
|
| Status: | Resolved |
| Project: | netvirt |
| Component/s: | elanmanager |
| Affects Version/s: | Aluminium |
| Fix Version/s: | Aluminium |
| Type: | Bug | Priority: | High |
| Reporter: | Srinivas Rachakonda | Assignee: | Karthikeyan Krishnan |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | 0 minutes | ||
| Time Spent: | 3 days | ||
| Original Estimate: | Not Specified | ||
| Attachments: |
|
| Priority: | High |
| Description |
|
VM boot goes to error state with the below exceptions:
opendaylight-user@root>log:list -----------------------------------------------------------------------
---
--- stack@control:~$ openstack network agent list
-------------------------------------
------------------------------------- stack@control:~$ openstack network list
-------------------------------------
------------------------------------- stack@control:~$ openstack subnet list
-------------------------------------
-------------------------------------
-------------------------------------
------------------------------------- stack@control:~$ openstack port show vpn_net_1_port_2
------------------------
------------------------ stack@control:~$ openstack server create --image cirros-0.4.0-x86_64-disk --flavor m1.nano --port vpn_net_1_port_2 --security-group vpn_sg --availability-zone nova:compute1 vpn_net_1_vm_2
------------------------------------
------------------------------------
-------------------------------------
------------------------------------- stack@control:~$ openstack server list
-------------------------------------
-------------------------------------
------------------------------------
------------------------------------
Karaf logs are attached.
|
| Comments |
| Comment by Robert Varga [ 05/Jul/20 ] |
2020-07-03T05:42:23,713 | ERROR | jobcoordinator-main-task-0 | JobCoordinatorImpl | 269 - org.opendaylight.infrautils.jobcoordinator-impl - 1.8.0.SNAPSHOT | Job still failed on final retry: JobEntry{key='bc.group.update.58cd941c-7330-4361-8f26-e9f2c9a71b3a', jobId='J371', queueId='Q267', mainWorker=org.opendaylight.netvirt.elan.l2gw.jobs.BcGroupUpdateJob@43704603, rollbackWorker=null, retryCount=5/5, futures=[com.google.common.util.concurrent.ImmediateFuture$ImmediateFailedFuture@23102b67[status=FAILURE, cause=[java.lang.IllegalArgumentException: Multiple entries with same key: BucketKey{_bucketId=BucketId{_value=1}}=Bucket{_action={ActionKey{_order=0}=Action{_action=SetFieldCase{_setField=SetField{_tunnel=Tunnel{_tunnelId=1001, augmentation=[]}, augmentation=[]}, augmentation=[]}, _order=0, augmentation=[]}, ActionKey{_order=1}=Action{_action=NxActionRegLoadNodesNodeTableFlowApplyActionsCase{_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=1280, augmentation=[]}, augmentation=[]}, _order=1, augmentation=[]}, ActionKey{_order=2}=Action{_action=NxActionResubmitRpcAddGroupCase{_nxResubmit=NxResubmit{_table=220, augmentation=[]}, augmentation=[]}, _order=2, augmentation=[]}}, _bucketId=BucketId{_value=1}, _watchGroup=4294967295, _watchPort=4294967295, _weight=0, augmentation=[]} and BucketKey{_bucketId=BucketId{_value=1}}=Bucket{_action={ActionKey{_order=0}=Action{getAction=SetFieldCase{getSetField=SetField{getTunnel=Tunnel{getTunnelId=1001, augmentation=[]}, augmentation=[]}, augmentation=[]}, getOrder=0, augmentation=[]}, ActionKey{_order=1}=Action{getAction=NxActionRegLoadNodesNodeGroupBucketsBucketActionsCase{getNxRegLoad=NxRegLoad{getDst=Dst{getDstChoice=DstNxRegCase{getNxReg=interface org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmNxReg6, augmentation=[]}, getEnd=31, getStart=0, augmentation=[]}, getValue=512, augmentation=[]}, augmentation=[]}, getOrder=1, augmentation=[]}, ActionKey{_order=2}=Action{getAction=NxActionResubmitNodesNodeGroupBucketsBucketActionsCase{getNxResubmit=NxResubmit{getInPort=65528, getTable=220, augmentation=[]}, augmentation=[]}, getOrder=2, augmentation=[]}}, _bucketId=BucketId{_value=1}, _watchGroup=4294967295, _watchPort=4294967295, _weight=0, augmentation=[]}. To index multiple values under a key, use Multimaps.index.]]]}
java.lang.IllegalArgumentException: Multiple entries with same key: BucketKey{_bucketId=BucketId{_value=1}}=Bucket{_action={ActionKey{_order=0}=Action{_action=SetFieldCase{_setField=SetField{_tunnel=Tunnel{_tunnelId=1001, augmentation=[]}, augmentation=[]}, augmentation=[]}, _order=0, augmentation=[]}, ActionKey{_order=1}=Action{_action=NxActionRegLoadNodesNodeTableFlowApplyActionsCase{_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=1280, augmentation=[]}, augmentation=[]}, _order=1, augmentation=[]}, ActionKey{_order=2}=Action{_action=NxActionResubmitRpcAddGroupCase{_nxResubmit=NxResubmit{_table=220, augmentation=[]}, augmentation=[]}, _order=2, augmentation=[]}}, _bucketId=BucketId{_value=1}, _watchGroup=4294967295, _watchPort=4294967295, _weight=0, augmentation=[]} and BucketKey{_bucketId=BucketId{_value=1}}=Bucket{_action={ActionKey{_order=0}=Action{getAction=SetFieldCase{getSetField=SetField{getTunnel=Tunnel{getTunnelId=1001, augmentation=[]}, augmentation=[]}, augmentation=[]}, getOrder=0, augmentation=[]}, ActionKey{_order=1}=Action{getAction=NxActionRegLoadNodesNodeGroupBucketsBucketActionsCase{getNxRegLoad=NxRegLoad{getDst=Dst{getDstChoice=DstNxRegCase{getNxReg=interface org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmNxReg6, augmentation=[]}, getEnd=31, getStart=0, augmentation=[]}, getValue=512, augmentation=[]}, augmentation=[]}, getOrder=1, augmentation=[]}, ActionKey{_order=2}=Action{getAction=NxActionResubmitNodesNodeGroupBucketsBucketActionsCase{getNxResubmit=NxResubmit{getInPort=65528, getTable=220, augmentation=[]}, augmentation=[]}, getOrder=2, augmentation=[]}}, _bucketId=BucketId{_value=1}, _watchGroup=4294967295, _watchPort=4294967295, _weight=0, augmentation=[]}. To index multiple values under a key, use Multimaps.index.
at com.google.common.collect.Maps.uniqueIndex(Maps.java:1338) ~[bundleFile:?]
at com.google.common.collect.Maps.uniqueIndex(Maps.java:1293) ~[bundleFile:?]
at org.opendaylight.yangtools.yang.binding.CodeHelpers.compatMap(CodeHelpers.java:296) ~[?:?]
at org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.BucketsBuilder.setBucket(BucketsBuilder.java:113) ~[?:?]
at org.opendaylight.genius.mdsalutil.MDSALUtil.buildBucketLists(MDSALUtil.java:293) ~[?:?]
at org.opendaylight.netvirt.elan.utils.ElanUtils.syncUpdateGroup(ElanUtils.java:1768) ~[?:?]
at org.opendaylight.netvirt.elan.l2gw.utils.ElanL2GatewayMulticastUtils.setupStandardElanBroadcastGroups(ElanL2GatewayMulticastUtils.java:303) ~[?:?]
at org.opendaylight.netvirt.elan.l2gw.utils.ElanL2GatewayMulticastUtils.updateRemoteBroadcastGroupForAllElanDpns(ElanL2GatewayMulticastUtils.java:265) ~[?:?]
at org.opendaylight.netvirt.elan.l2gw.jobs.BcGroupUpdateJob.lambda$call$0(BcGroupUpdateJob.java:59) ~[?:?]
at org.opendaylight.genius.infra.ManagedTransactionFactoryImpl.lambda$callWithNewTransactionAndSubmit$3(ManagedTransactionFactoryImpl.java:89) ~[?:?]
at org.opendaylight.genius.infra.ManagedTransactionFactoryImpl.applyWithNewTransactionAndSubmit(ManagedTransactionFactoryImpl.java:105) ~[?:?]
at org.opendaylight.genius.infra.ManagedTransactionFactoryImpl.callWithNewTransactionAndSubmit(ManagedTransactionFactoryImpl.java:88) ~[?:?]
at org.opendaylight.genius.infra.ManagedNewTransactionRunnerImpl.callWithNewWriteOnlyTransactionAndSubmit(ManagedNewTransactionRunnerImpl.java:63) ~[?:?]
at org.opendaylight.netvirt.elan.l2gw.jobs.BcGroupUpdateJob.call(BcGroupUpdateJob.java:58) ~[?:?]
at org.opendaylight.netvirt.elan.l2gw.jobs.BcGroupUpdateJob.call(BcGroupUpdateJob.java:27) ~[?:?]
at org.opendaylight.infrautils.jobcoordinator.internal.JobCoordinatorImpl$MainTask.run(JobCoordinatorImpl.java:416) [bundleFile:?]
at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1426) [?:?]
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290) [?:?]
at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020) [?:?]
at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656) [?:?]
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594) [?:?]
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177) [?:?]
A modeling/keying problem perhaps?
|
| Comment by Karthikeyan Krishnan [ 09/Jul/20 ] |
|
Yes Robert. We are working on the fix to solve this issue. |
| Comment by Karthikeyan Krishnan [ 17/Jul/20 ] |
|
The following gerrit links for merged into Aluminium release to solve the reported problem in netvirt proejct.
https://git.opendaylight.org/gerrit/c/netvirt/+/91343 https://git.opendaylight.org/gerrit/c/netvirt/+/91036 https://git.opendaylight.org/gerrit/c/netvirt/+/91344
|