Runtime types fail with leafref typedef and disabled features

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 https://lf-opendaylight.atlassian.net/browse/YANGTOOLS-1514#icft=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

 

Environment

None

Attachments

1
  • 12 Jun 2023, 07:46 AM

Activity

Show:
Done

Details

Assignee

Reporter

Components

Fix versions

Affects versions

Priority

Created June 12, 2023 at 7:46 AM
Updated February 6, 2025 at 2:13 PM
Resolved June 14, 2023 at 4:45 PM