[MDSAL-829] Runtime types fail with leafref typedef and disabled features Created: 12/Jun/23  Updated: 14/Jun/23  Resolved: 14/Jun/23

Status: Resolved
Project: mdsal
Component/s: Binding runtime
Affects Version/s: 11.0.10, 11.0.11
Fix Version/s: 12.0.0, 11.0.12

Type: Bug Priority: High
Reporter: Ruslan Kashapov Assignee: Robert Varga
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: File ietf-model-build-failure_karaf.log.gz    
Issue Links:
Blocks
blocks NETCONF-590 Refactor NETCONF transport layer Resolved
Relates
relates to MDSAL-790 mdsal-dom-schema-osgi needs to propag... Resolved
relates to YANGTOOLS-1514 Failed to process YANGs containing re... Resolved

 Description   

This is detected in feature-aware MD-SAL SchemaService in conjuction with a partially-implemented ietf-keystore used through ietf-ssh-server:

2023-06-09T14:04:01,984 | INFO  | features-3-thread-1 | OSGiBindingRuntime               | 165 - org.opendaylight.mdsal.binding-runtime-osgi - 11.0.11 | Binding Runtime activating
2023-06-09T14:04:02,038 | ERROR | features-3-thread-1 | OSGiBindingRuntime               | 165 - org.opendaylight.mdsal.binding-runtime-osgi - 11.0.11 | bundle org.opendaylight.mdsal.binding-runtime-osgi:11.0.11 (165)[org.opendaylight.mdsal.binding.runtime.osgi.impl.OSGiBindingRuntime(12)] : The activate method has thrown an exception
java.lang.IllegalArgumentException: Failed to find leafref target /ks:keystore/ks:symmetric-keys/ks:symmetric-key/ks:name
	at org.opendaylight.mdsal.binding.generator.impl.reactor.GeneratorReactor.strictResolvePath(GeneratorReactor.java:327) ~[?:?]
	at org.opendaylight.mdsal.binding.generator.impl.reactor.GeneratorReactor.resolveLeafref(GeneratorReactor.java:317) ~[?:?]
	at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractTypeObjectGenerator.bindTypeDefinition(AbstractTypeObjectGenerator.java:375) ~[?:?]
	at org.opendaylight.mdsal.binding.generator.impl.reactor.GeneratorReactor.bindTypeDefinition(GeneratorReactor.java:411) ~[?:?]
	at org.opendaylight.mdsal.binding.generator.impl.reactor.GeneratorReactor.bindTypeDefinition(GeneratorReactor.java:413) ~[?:?]
	at org.opendaylight.mdsal.binding.generator.impl.reactor.GeneratorReactor.execute(GeneratorReactor.java:191) ~[?:?]
	at org.opendaylight.mdsal.binding.generator.impl.BindingRuntimeTypesFactory.createTypes(BindingRuntimeTypesFactory.java:65) ~[?:?]
	at org.opendaylight.mdsal.binding.generator.impl.DefaultBindingRuntimeGenerator.generateTypeMapping(DefaultBindingRuntimeGenerator.java:30) ~[?:?]
	at org.opendaylight.mdsal.binding.runtime.osgi.impl.OSGiBindingRuntime$ActiveInstances.add(OSGiBindingRuntime.java:105) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ~[?:?]
	at java.util.stream.SortedOps$SizedRefSortingSink.end(SortedOps.java:357) ~[?:?]
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:510) ~[?:?]
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:?]
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
	at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) ~[?:?]
	at org.opendaylight.mdsal.binding.runtime.osgi.impl.OSGiBindingRuntime$InactiveInstances.toActive(OSGiBindingRuntime.java:80) ~[?:?]
	at org.opendaylight.mdsal.binding.runtime.osgi.impl.OSGiBindingRuntime.activate(OSGiBindingRuntime.java:158) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
	at org.apache.felix.scr.impl.inject.methods.BaseMethod.invokeMethod(BaseMethod.java:245) ~[?:?]
	at org.apache.felix.scr.impl.inject.methods.BaseMethod.access$500(BaseMethod.java:41) ~[?:?]
	at org.apache.felix.scr.impl.inject.methods.BaseMethod$Resolved.invoke(BaseMethod.java:687) ~[?:?]
	at org.apache.felix.scr.impl.inject.methods.BaseMethod.invoke(BaseMethod.java:531) ~[?:?]
	at org.apache.felix.scr.impl.inject.methods.ActivateMethod.invoke(ActivateMethod.java:317) ~[?:?]
	at org.apache.felix.scr.impl.inject.methods.ActivateMethod.invoke(ActivateMethod.java:307) ~[?:?]
	at org.apache.felix.scr.impl.manager.SingleComponentManager.createImplementationObject(SingleComponentManager.java:354) ~[?:?]
	at org.apache.felix.scr.impl.manager.SingleComponentManager.createComponent(SingleComponentManager.java:115) ~[?:?]
	at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:1002) ~[?:?]
	at org.apache.felix.scr.impl.manager.SingleComponentManager.getServiceInternal(SingleComponentManager.java:975) ~[?:?]
	at org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:785) ~[?:?]
	at org.apache.felix.scr.impl.manager.DependencyManager$SingleStaticCustomizer.addedService(DependencyManager.java:1274) ~[?:?]
	at org.apache.felix.scr.impl.manager.DependencyManager$SingleStaticCustomizer.addedService(DependencyManager.java:1225) ~[?:?]
	at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1232) ~[?:?]
	at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1152) ~[?:?]
	at org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.trackAdding(ServiceTracker.java:959) ~[?:?]
	at org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.track(ServiceTracker.java:895) ~[?:?]
	at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:1184) ~[?:?]
	at org.apache.felix.scr.impl.BundleComponentActivator$ListenerInfo.serviceChanged(BundleComponentActivator.java:116) ~[?:?]
	at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:123) ~[?:?]
	at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:961) ~[?:?]
	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234) ~[?:?]
	at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:151) ~[?:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:937) ~[?:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:874) ~[?:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:141) ~[?:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:262) ~[?:?]
	at org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:500) ~[?:?]
	at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:929) ~[?:?]
	at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:915) ~[?:?]
	at org.apache.felix.scr.impl.manager.RegistrationManager.changeRegistration(RegistrationManager.java:133) ~[?:?]
	at org.apache.felix.scr.impl.manager.AbstractComponentManager.registerService(AbstractComponentManager.java:984) ~[?:?]
	at org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:752) ~[?:?]
	at org.apache.felix.scr.impl.manager.AbstractComponentManager.enableInternal(AbstractComponentManager.java:674) ~[?:?]
	at org.apache.felix.scr.impl.manager.AbstractComponentManager.enable(AbstractComponentManager.java:437) ~[?:?]
	at org.apache.felix.scr.impl.manager.ConfigurableComponentHolder.enableComponents(ConfigurableComponentHolder.java:671) ~[?:?]
	at org.apache.felix.scr.impl.BundleComponentActivator.initialEnable(BundleComponentActivator.java:310) ~[?:?]
	at org.apache.felix.scr.impl.Activator.loadComponents(Activator.java:593) ~[?:?]
	at org.apache.felix.scr.impl.Activator.access$200(Activator.java:74) ~[?:?]
	at org.apache.felix.scr.impl.Activator$ScrExtension.start(Activator.java:460) ~[?:?]
	at org.apache.felix.scr.impl.AbstractExtender.createExtension(AbstractExtender.java:196) ~[?:?]
	at org.apache.felix.scr.impl.AbstractExtender.modifiedBundle(AbstractExtender.java:169) ~[?:?]
	at org.apache.felix.scr.impl.AbstractExtender.modifiedBundle(AbstractExtender.java:49) ~[?:?]
	at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:488) ~[osgi.core-8.0.0.jar:?]
	at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:420) ~[osgi.core-8.0.0.jar:?]
	at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:232) ~[osgi.core-8.0.0.jar:?]
	at org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(BundleTracker.java:450) ~[osgi.core-8.0.0.jar:?]
	at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:949) ~[?:?]
	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234) ~[?:?]
	at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:151) ~[?:?]
	at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEventPrivileged(EquinoxEventPublisher.java:229) ~[?:?]
	at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:138) ~[?:?]
	at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:130) ~[?:?]
	at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor.publishModuleEvent(EquinoxContainerAdaptor.java:217) ~[?:?]
	at org.eclipse.osgi.container.Module.publishEvent(Module.java:499) ~[?:?]
	at org.eclipse.osgi.container.Module.start(Module.java:486) ~[?:?]
	at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:445) ~[?:?]
	at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:464) ~[?:?]
	at org.apache.karaf.features.internal.service.BundleInstallSupportImpl.startBundle(BundleInstallSupportImpl.java:165) ~[?:?]
	at org.apache.karaf.features.internal.service.FeaturesServiceImpl.startBundle(FeaturesServiceImpl.java:1160) ~[?:?]
	at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:1041) ~[?:?]
	at org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1069) ~[?:?]
	at org.apache.karaf.features.internal.service.FeaturesServiceImpl.lambda$doProvisionInThread$13(FeaturesServiceImpl.java:1004) ~[?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
	at java.lang.Thread.run(Thread.java:833) ~[?:?]
Caused by: java.lang.IllegalArgumentException: Data tree child (urn:ietf:params:xml:ns:yang:ietf-keystore?revision=2022-12-12)keystore not present in module (urn:ietf:params:xml:ns:yang:ietf-keystore?revision=2022-12-12)ietf-keystore
	at org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.notPresent(SchemaInferenceStack.java:965) ~[?:?]
	at org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.lambda$pushData$6(SchemaInferenceStack.java:771) ~[?:?]
	at java.util.Optional.orElseThrow(Optional.java:403) ~[?:?]
	at org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.pushData(SchemaInferenceStack.java:771) ~[?:?]
	at org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.pushFirstData(SchemaInferenceStack.java:779) ~[?:?]
	at org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.pushData(SchemaInferenceStack.java:759) ~[?:?]
	at org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.enterDataTree(SchemaInferenceStack.java:473) ~[?:?]
	at org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.enterChild(SchemaInferenceStack.java:666) ~[?:?]
	at org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.resolveLocationPath(SchemaInferenceStack.java:646) ~[?:?]
	at org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.resolvePathExpression(SchemaInferenceStack.java:589) ~[?:?]
	at org.opendaylight.mdsal.binding.generator.impl.reactor.GeneratorReactor.strictResolvePath(GeneratorReactor.java:325) ~[?:?]
	... 89 more

The case follows (occurs after) the fix of YANGTOOLS-1514

log origin: https://s3-logs.opendaylight.org/logs/releng/vex-yul-odl-jenkins-1/netconf-maven-verify-master-mvn38-openjdk17/3271/features/odl-netconf-impl/target/SFT/karaf.log.gz

 


Generated at Wed Feb 07 20:11:04 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.