Bug 1487792

Summary: Java.lang.IllegalArgumentException: All keys must be specified for class org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.vpn.instance.op.data.VpnInstanceOpDataEntryKey. Missing key is getVrfId. Supplied key is VpnInstanceOpDataEntryK
Product: Red Hat OpenStack Reporter: Sai Sindhur Malleni <smalleni>
Component: opendaylightAssignee: Sam Hague <shague>
Status: CLOSED ERRATA QA Contact: Sai Sindhur Malleni <smalleni>
Severity: medium Docs Contact:
Priority: medium    
Version: 12.0 (Pike)CC: mkolesni, nyechiel, shague, trozet, tvignaud
Target Milestone: betaKeywords: TestOnly, Triaged
Target Release: 13.0 (Queens)   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard: scale_lab
Fixed In Version: opendaylight-6.2.0-4 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
N/A
Last Closed: 2018-06-27 13:36:15 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Sai Sindhur Malleni 2017-09-01 22:45:24 UTC
Description of problem:

When running a Browbeat+Rally use case which does:
Create a network
Create a sbunet
Create a router
Attach router to subnet and oublic network
Boot VM with floating IP
Ping VM

with concurrency 8 and times set to 50 we see that some VMs remain unpingable even after 300 seconds and we see a lot of the following exceptions in karaf logs
Java.lang.IllegalArgumentException: All keys must be specified for class org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.vpn.instance.op.data.VpnInstanceOpDataEntryKey. Missing key is getVrfId. Supplied key is VpnInstanceOpDataEntryKey []
        at com.google.common.base.Preconditions.checkArgument(Preconditions.java:145)[65:com.google.guava:18.0.0]
        at org.opendaylight.yangtools.binding.data.codec.impl.ValueContext.getAndSerialize(ValueContext.java:43)[117:org.opendaylight.mdsal.binding-dom-codec:0.10.2.Carbon]
        at org.opendaylight.yangtools.binding.data.codec.impl.IdentifiableItemCodec.serialize(IdentifiableItemCodec.java:116)[117:org.opendaylight.mdsal.binding-dom-codec:0.10.2.Carbon]
        at org.opendaylight.yangtools.binding.data.codec.impl.IdentifiableItemCodec.serialize(IdentifiableItemCodec.java:30)[117:org.opendaylight.mdsal.binding-dom-codec:0.10.2.Carbon]
        at org.opendaylight.yangtools.binding.data.codec.impl.KeyedListNodeCodecContext.addYangPathArgument(KeyedListNodeCodecContext.java:52)[117:org.opendaylight.mdsal.binding-dom-codec:0.10.2.Carbon]
        at org.opendaylight.yangtools.binding.data.codec.impl.DataObjectCodecContext.bindingPathArgumentChild(DataObjectCodecContext.java:187)[117:org.opendaylight.mdsal.binding-dom-codec:0.10.2.Carbon]
        at org.opendaylight.yangtools.binding.data.codec.impl.BindingCodecContext.getCodecContextNode(BindingCodecContext.java:127)[117:org.opendaylight.mdsal.binding-dom-codec:0.10.2.Carbon]
        at org.opendaylight.yangtools.binding.data.codec.impl.InstanceIdentifierCodec.serialize(InstanceIdentifierCodec.java:29)[117:org.opendaylight.mdsal.binding-dom-codec:0.10.2.Carbon]
        at org.opendaylight.yangtools.binding.data.codec.impl.InstanceIdentifierCodec.serialize(InstanceIdentifierCodec.java:19)[117:org.opendaylight.mdsal.binding-dom-codec:0.10.2.Carbon]
        at org.opendaylight.yangtools.binding.data.codec.impl.BindingNormalizedNodeCodecRegistry.toYangInstanceIdentifier(BindingNormalizedNodeCodecRegistry.java:87)[117:org.opendaylight.mdsal.binding-dom-codec:0.10.2.Carbon]
        at org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec.toYangInstanceIdentifierBlocking(BindingToNormalizedNodeCodec.java:101)[173:org.opendaylight.controller.sal-binding-broker-impl:1.5.2.Carbon]
        at org.opendaylight.controller.md.sal.binding.impl.AbstractForwardedTransaction.doRead(AbstractForwardedTransaction.java:64)[173:org.opendaylight.controller.sal-binding-broker-impl:1.5.2.Carbon]
        at org.opendaylight.controller.md.sal.binding.impl.BindingDOMReadTransactionAdapter.read(BindingDOMReadTransactionAdapter.java:31)[173:org.opendaylight.controller.sal-binding-broker-impl:1.5.2.Carbon]
        at org.opendaylight.genius.datastoreutils.SingleTransactionDataBroker.syncReadOptionalAndTreatReadFailedExceptionAsAbsentOptional(SingleTransactionDataBroker.java:158)[319:org.opendaylight.genius.mdsalutil-api:0.2.2.Carbon]
        at org.opendaylight.netvirt.natservice.internal.NatEvpnUtil.getVpnInstanceOpData(NatEvpnUtil.java:133)[369:org.opendaylight.netvirt.natservice-impl:0.4.2.Carbon]
        at org.opendaylight.netvirt.natservice.internal.NatEvpnUtil.getL3Vni(NatEvpnUtil.java:124)[369:org.opendaylight.netvirt.natservice-impl:0.4.2.Carbon]
        at org.opendaylight.netvirt.natservice.internal.NatEvpnUtil.releaseLPortTagForRouter(NatEvpnUtil.java:76)[369:org.opendaylight.netvirt.natservice-impl:0.4.2.Carbon]
        at org.opendaylight.netvirt.natservice.internal.ExternalRoutersListener.removeNaptSwitch(ExternalRoutersListener.java:1792)[369:org.opendaylight.netvirt.natservice-impl:0.4.2.Carbon]
        at org.opendaylight.netvirt.natservice.internal.ExternalRoutersListener.handleDisableSnat(ExternalRoutersListener.java:1676)[369:org.opendaylight.netvirt.natservice-impl:0.4.2.Carbon]
        at org.opendaylight.netvirt.natservice.internal.ExternalRoutersListener.remove(ExternalRoutersListener.java:1644)[369:org.opendaylight.netvirt.natservice-impl:0.4.2.Carbon]
        at org.opendaylight.netvirt.natservice.internal.ExternalRoutersListener.remove(ExternalRoutersListener.java:139)[369:org.opendaylight.netvirt.natservice-impl:0.4.2.Carbon]
        at org.opendaylight.genius.datastoreutils.AsyncDataTreeChangeListenerBase$DataTreeChangeHandler.run(AsyncDataTreeChangeListenerBase.java:151)[319:org.opendaylight.genius.mdsalutil-api:0.2.2.Carbon]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)[:1.8.0_141]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)[:1.8.0_141]
        at java.lang.Thread.run(Thread.java:748)[:1.8.0_141]


Version-Release number of selected component (if applicable):
ODL Caarbon+OSP12
opendaylight/6.2.0-0.1.20170829rel1948.el7.noarch
python-networking-odl-11.0.0-0.20170806093629.2e78dca.el7ost.noarch

How reproducible:
100%


Steps to Reproduce:
1. Deploy overcloud with ODL
2. Run custom Browbeat+Rally plugin which boots vm and pings floatingip
3. 

Actual results:
Tracebacks in karaf logs

Expected results:
No tracebacks in karaf

Additional info:

Comment 3 Tim Rozet 2018-02-14 20:26:56 UTC
Can you please link the gerrit fix in the external tracker?

Comment 4 Lon Hohberger 2018-03-07 13:52:10 UTC
According to our records, this should be resolved by opendaylight-6.2.0-4.el7ost.  This build is available now.

Comment 8 Sai Sindhur Malleni 2018-04-15 13:26:05 UTC
Running the usecase mentioned above, the exception is no longer seen in karaf logs.

Comment 10 errata-xmlrpc 2018-06-27 13:36:15 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHEA-2018:2086