Hi Tom I'm able to reproduce this by just doing the following two steps while having data populated in my journal (similar to what is triggered by controller/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/config/yang/config/actor_system_provider/impl/ActorSystemProviderImpl.java).
opendaylight-user@root>property karaf.restart true opendaylight-user@root>stop -f 0 Somehow the data/cache causes this LinkageError whenever a restart is caused through Quarantine. It doesn't happen for regular warm restarts. Not sure where the wiring in Karaf/OSGi is screwing up. Srini. On Wed, Apr 5, 2017 at 1:03 AM, Srini Seetharaman < srini.seethara...@gmail.com> wrote: > I've filed https://bugs.opendaylight.org/show_bug.cgi?id=8143 to track > this issue. > > On Sat, Apr 1, 2017 at 3:23 PM, Srini Seetharaman < > srini.seethara...@gmail.com> wrote: > >> cc'ing yangtools-dev instead of controller-dev because there was an >> earlier thread with a similar exception: >> https://lists.opendaylight.org/pipermail/yangtools-dev/2016- >> July/001500.html >> >> On Sat, Apr 1, 2017 at 3:09 PM, Srini Seetharaman < >> srini.seethara...@gmail.com> wrote: >> >>> Hi, >>> Sometimes when I bring up my cluster, I see that some instances throw >>> the IllegalStateException when I perform a writeTransaction to a container >>> within a list where the key for the list is of type "inet:host". Is this a >>> bug or am I doing something wrong? I feel it is a bug because this works >>> most of the times, but 1/10 runs I get this error for my periodic write >>> operation? >>> >>> >>> *Exact call:* >>> modification.merge(logicalDatastoreType, iid, data, true); >>> >>> *iid:* >>> InstanceIdentifier{targetType=interface org.opendaylight.yang.gen.v1.u >>> rn.acme.system.compute.rev160510.compute.element.state.State, path=[ >>> org.opendaylight.yang.gen.v1.urn.acme.system.rev160510.System, >>> org.opendaylight.yang.gen.v1.urn.acme.system.compute.rev1605 >>> 10.SystemComputes, >>> org.opendaylight.yang.gen.v1.urn.acme.system.compute.rev1605 >>> 10.system.ComputeElements, >>> org.opendaylight.yang.gen.v1.urn.acme.system.compute.rev1605 >>> 10.compute.elements.grouping.ComputeElement[key=ComputeElementKey >>> [_host=Host [_domainName=DomainName [_value=172.17.5.237]]]], >>> org.opendaylight.yang.gen.v1.urn.acme.system.compute.rev1605 >>> 10.compute.element.state.State]} >>> >>> >>> *data:* >>> State [_cpuInfo=CpuInfo [_processorCount=6, _usage=1.28, >>> augmentation=[]], _memInfo=MemInfo [_memFree=1206198272, >>> _memTotal=12302811136, augmentation=[]], augmentation=[]] >>> >>> *Full stacktrace:* >>> java.lang.IllegalStateException: Unable to load codec for class >>> org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iet >>> f.inet.types.rev130715.Host >>> at org.opendaylight.yangtools.binding.data.codec.impl.BindingCo >>> decContext.getCodecForBindingClass(BindingCodecContext.java: >>> 306)[91:org.opendaylight.mdsal.binding-dom-codec:0.9.2.Boron-SR2] >>> at org.opendaylight.yangtools.binding.data.codec.impl.BindingCo >>> decContext.getCodec(BindingCodecContext.java:291)[91:org.ope >>> ndaylight.mdsal.binding-dom-codec:0.9.2.Boron-SR2] >>> at org.opendaylight.yangtools.binding.data.codec.impl.BindingCo >>> decContext.getCodec(BindingCodecContext.java:274)[91:org.ope >>> ndaylight.mdsal.binding-dom-codec:0.9.2.Boron-SR2] >>> at org.opendaylight.yangtools.binding.data.codec.impl.BindingCo >>> decContext.getLeafNodesUsingReflection(BindingCodecContext.j >>> ava:262)[91:org.opendaylight.mdsal.binding-dom-codec:0.9.2.Boron-SR2] >>> at org.opendaylight.yangtools.binding.data.codec.impl.BindingCo >>> decContext.getLeafNodes(BindingCodecContext.java:229)[91:org >>> .opendaylight.mdsal.binding-dom-codec:0.9.2.Boron-SR2] >>> at org.opendaylight.yangtools.binding.data.codec.impl.DataObjec >>> tCodecContext.<init>(DataObjectCodecContext.java:84)[91:org. >>> opendaylight.mdsal.binding-dom-codec:0.9.2.Boron-SR2] >>> at org.opendaylight.yangtools.binding.data.codec.impl.ListNodeC >>> odecContext.<init>(ListNodeCodecContext.java:22)[91:org.open >>> daylight.mdsal.binding-dom-codec:0.9.2.Boron-SR2] >>> at org.opendaylight.yangtools.binding.data.codec.impl.KeyedList >>> NodeCodecContext.<init>(KeyedListNodeCodecContext.java:29)[9 >>> 1:org.opendaylight.mdsal.binding-dom-codec:0.9.2.Boron-SR2] >>> at org.opendaylight.yangtools.binding.data.codec.impl.DataConta >>> inerCodecPrototype.createInstance(DataContainerCodecPrototyp >>> e.java:129)[91:org.opendaylight.mdsal.binding-dom-codec:0.9.2.Boron-SR2] >>> at org.opendaylight.yangtools.binding.data.codec.impl.DataConta >>> inerCodecPrototype.get(DataContainerCodecPrototype.java:112) >>> [91:org.opendaylight.mdsal.binding-dom-codec:0.9.2.Boron-SR2] >>> at org.opendaylight.yangtools.binding.data.codec.impl.DataObjec >>> tCodecContext.bindingPathArgumentChild(DataObjectCodecContex >>> t.java:184)[91:org.opendaylight.mdsal.binding-dom-codec:0.9.2.Boron-SR2] >>> at org.opendaylight.yangtools.binding.data.codec.impl.BindingCo >>> decContext.getCodecContextNode(BindingCodecContext.java:127) >>> [91:org.opendaylight.mdsal.binding-dom-codec:0.9.2.Boron-SR2] >>> at org.opendaylight.yangtools.binding.data.codec.impl.BindingCo >>> decContext.newWriter(BindingCodecContext.java:104)[91:org.op >>> endaylight.mdsal.binding-dom-codec:0.9.2.Boron-SR2] >>> at org.opendaylight.yangtools.binding.data.codec.impl.BindingNo >>> rmalizedNodeCodecRegistry.toNormalizedNode(BindingNormalized >>> NodeCodecRegistry.java:102)[91:org.opendaylight.mdsal. >>> binding-dom-codec:0.9.2.Boron-SR2] >>> at org.opendaylight.controller.md.sal.binding.impl.BindingToNor >>> malizedNodeCodec.toNormalizedNode(BindingToNormalizedNodeCod >>> ec.java:132)[163:org.opendaylight.controller.sal-binding-bro >>> ker-impl:1.4.2.Boron-SR2] >>> at org.opendaylight.controller.md.sal.binding.impl.AbstractWrit >>> eTransaction.merge(AbstractWriteTransaction.java:53)[163:org >>> .opendaylight.controller.sal-binding-broker-impl:1.4.2.Boron-SR2] >>> at org.acme.utils.transaction.GenericTransactionUtils.writeData >>> (GenericTransactionUtils.java:40)[301:org.acme.utils.transac >>> tion:0.1.0.SNAPSHOT] >>> at org.acme.utils.transaction.GenericTransactionUtils.writeData >>> (GenericTransactionUtils.java:28)[301:org.acme.utils.transac >>> tion:0.1.0.SNAPSHOT] >>> at org.acme.infra.ha.manager.impl.InstancePropertyMonitor.updat >>> eComputeElementInfo(InstancePropertyMonitor.java:246)[295:or >>> g.acme.infra.hamgr.impl:0.1.0.SNAPSHOT] >>> at org.acme.infra.ha.manager.impl.InstancePropertyMonitor.acces >>> s$300(InstancePropertyMonitor.java:61)[295:org.acme.infra.ha >>> mgr.impl:0.1.0.SNAPSHOT] >>> at org.acme.infra.ha.manager.impl.InstancePropertyMonitor$2.run >>> (InstancePropertyMonitor.java:106)[295:org.acme.infra.hamgr. >>> impl:0.1.0.SNAPSHOT] >>> at java.util.TimerThread.mainLoop(Timer.java:555)[:1.8.0_111] >>> at java.util.TimerThread.run(Timer.java:505)[:1.8.0_111] >>> Caused by: java.lang.IllegalStateException: Unable to load codec for >>> class org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iet >>> f.inet.types.rev130715.IpAddress >>> at org.opendaylight.yangtools.binding.data.codec.impl.BindingCo >>> decContext.getCodecForBindingClass(BindingCodecContext.java: >>> 306)[91:org.opendaylight.mdsal.binding-dom-codec:0.9.2.Boron-SR2] >>> at org.opendaylight.yangtools.binding.data.codec.impl.BindingCo >>> decContext.getCodec(BindingCodecContext.java:291)[91:org.ope >>> ndaylight.mdsal.binding-dom-codec:0.9.2.Boron-SR2] >>> at org.opendaylight.yangtools.binding.data.codec.impl.UnionType >>> Codec.lambda$loader$0(UnionTypeCodec.java:35)[91:org. >>> opendaylight.mdsal.binding-dom-codec:0.9.2.Boron-SR2] >>> at org.opendaylight.yangtools.binding.data.codec.impl.BindingCo >>> decContext.getCodecForBindingClass(BindingCodecContext.java: >>> 304)[91:org.opendaylight.mdsal.binding-dom-codec:0.9.2.Boron-SR2] >>> ... 22 more >>> Caused by: java.lang.IllegalStateException: Failed to access >>> constructor for class org.opendaylight.yang.gen.v1.u >>> rn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address in >>> type class org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iet >>> f.inet.types.rev130715.IpAddress >>> at org.opendaylight.yangtools.binding.data.codec.impl.UnionValu >>> eOptionContext.<init>(UnionValueOptionContext.java:43)[91: >>> org.opendaylight.mdsal.binding-dom-codec:0.9.2.Boron-SR2] >>> at org.opendaylight.yangtools.binding.data.codec.impl.UnionType >>> Codec.lambda$loader$0(UnionTypeCodec.java:36)[91:org. >>> opendaylight.mdsal.binding-dom-codec:0.9.2.Boron-SR2] >>> at org.opendaylight.yangtools.binding.data.codec.impl.BindingCo >>> decContext.getCodecForBindingClass(BindingCodecContext.java: >>> 304)[91:org.opendaylight.mdsal.binding-dom-codec:0.9.2.Boron-SR2] >>> ... 25 more >>> Caused by: java.lang.IllegalAccessException: no such constructor: >>> org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iet >>> f.inet.types.rev130715.IpAddress.<init>(Ipv4Address)void/new >>> InvokeSpecial >>> at java.lang.invoke.MemberName.makeAccessException(MemberName.j >>> ava:867)[:1.8.0_111] >>> at java.lang.invoke.MemberName$Factory.resolveOrFail(MemberName >>> .java:1003)[:1.8.0_111] >>> at java.lang.invoke.MethodHandles$Lookup.resolveOrFail(MethodHa >>> ndles.java:1381)[:1.8.0_111] >>> at java.lang.invoke.MethodHandles$Lookup.findConstructor(Method >>> Handles.java:919)[:1.8.0_111] >>> at org.opendaylight.yangtools.binding.data.codec.impl.UnionValu >>> eOptionContext.<init>(UnionValueOptionContext.java:40)[91: >>> org.opendaylight.mdsal.binding-dom-codec:0.9.2.Boron-SR2] >>> ... 27 more >>> Caused by: java.lang.LinkageError: loader constraint violation: when >>> resolving method "org.opendaylight.yang.gen.v1. >>> urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddr >>> ess.<init>(Lorg/opendaylight/yang/gen/v1/urn/ietf/params/xml >>> /ns/yang/ietf/inet/types/rev130715/Ipv4Address;)V" the class loader >>> (instance of <bootloader>) of the current class, java/lang/Object, and the >>> class loader (instance of >>> org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader) >>> for the method's defining class, org/opendaylight/yang/gen/v1/u >>> rn/ietf/params/xml/ns/yang/ietf/inet/types/rev130715/IpAddress, have >>> different Class objects for the type org/opendaylight/yang/gen/v1/u >>> rn/ietf/params/xml/ns/yang/ietf/inet/types/rev130715/Ipv4Address used >>> in the signature >>> at java.lang.invoke.MethodHandleNatives.resolve(Native >>> Method)[:1.8.0_111] >>> at java.lang.invoke.MemberName$Factory.resolve(MemberName.java: >>> 975)[:1.8.0_111] >>> at java.lang.invoke.MemberName$Factory.resolveOrFail(MemberName >>> .java:1000)[:1.8.0_111] >>> ... 30 more >>> >>> >> >
_______________________________________________ controller-dev mailing list controller-dev@lists.opendaylight.org https://lists.opendaylight.org/mailman/listinfo/controller-dev