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

Reply via email to