Uploaded image for project: 'yangtools'
  1. yangtools
  2. YANGTOOLS-1428

Missing failedSource in SchemaResolutionException

XMLWordPrintable

      SchemaResolutionException thrown from AssembleSources does not have failedSource even though the information is available in SomeModifiersUnresolvedException wrapped in YangParserException, which in turn included in SchemaResolutionException.

      For example, the following two data modules does not compile successfully, as expected, because the target path of the deviation statement is invalid.

      orig.yang

      module orig {
        namespace "urn:orig";
        prefix orig;
      
        container foo {
          leaf bar {
            type string;
          }
        }
      }
      

      deviate.yang

      module deviate {
        namespace "urn:deviate";
        prefix dev;
      
        import orig {
          prefix orig;
        }
      
        deviation "/orig:foo/orig:bar/orig:baz" {
          deviate not-supported;
        }
      }
      

      When this error occurs during NETCONF mounting process, the whole mounting process fails because NETCONF does not find the failed source information:

      2022-04-14T14:17:30,752 | ERROR | remote-connector-processing-executor-11 | BuildGlobalContext               | 341 - org.opendaylight.yangtools.yang-parser-reactor - 8.0.3 | Failed to parse YANG from source SourceSpecificContext [source=YangStatementStreamSource{identifier=RevisionSourceIdentifier [name=deviate]}, current=EFFECTIVE_MODEL, finished=FULL_DECLARATION]: Deviation target 'Absolute{qnames=[(urn:orig)foo, bar, baz]}' not found. [at cache/ncserver/deviate.yang:9:3]
      2022-04-14T14:17:30,753 | DEBUG | remote-connector-processing-executor-11 | NetconfDevice                    | 282 - org.opendaylight.netconf.sal-netconf-connector - 3.0.1.SNAPSHOT | RemoteDevice{ncserver}: Unable to map any source identifiers to a capability reported by device : []
      2022-04-14T14:17:30,754 | WARN  | remote-connector-processing-executor-11 | NetconfDevice                    | 282 - org.opendaylight.netconf.sal-netconf-connector - 3.0.1.SNAPSHOT | RemoteDevice{ncserver}: Unable to build schema context, unsatisfied imports null, will reattempt with resolved only
      2022-04-14T14:17:30,754 | DEBUG | remote-connector-processing-executor-11 | NetconfDevice                    | 282 - org.opendaylight.netconf.sal-netconf-connector - 3.0.1.SNAPSHOT | RemoteDevice{ncserver}: Unable to build schema context, unsatisfied imports {}, will reattempt with resolved only
      org.opendaylight.yangtools.yang.model.repo.api.SchemaResolutionException: Failed to resolve required models, failed source: null, resolved sources: [], unsatisfied imports: {}
      	at org.opendaylight.yangtools.yang.parser.repo.AssembleSources.apply(AssembleSources.java:93) ~[bundleFile:?]
      	at org.opendaylight.yangtools.yang.parser.repo.AssembleSources.apply(AssembleSources.java:38) ~[bundleFile:?]
      	at com.google.common.util.concurrent.AbstractTransformFuture$AsyncTransformFuture.doTransform(AbstractTransformFuture.java:221) ~[bundleFile:?]
      	at com.google.common.util.concurrent.AbstractTransformFuture$AsyncTransformFuture.doTransform(AbstractTransformFuture.java:208) ~[bundleFile:?]
      	at com.google.common.util.concurrent.AbstractTransformFuture.run(AbstractTransformFuture.java:122) ~[bundleFile:?]
      	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31) ~[bundleFile:?]
      	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270) ~[bundleFile:?]
      	at com.google.common.util.concurrent.AbstractFuture.addListener(AbstractFuture.java:761) ~[bundleFile:?]
      	at com.google.common.util.concurrent.FluentFuture$TrustedFuture.addListener(FluentFuture.java:114) ~[bundleFile:?]
      	at com.google.common.util.concurrent.AbstractTransformFuture.create(AbstractTransformFuture.java:43) ~[bundleFile:?]
      	at com.google.common.util.concurrent.Futures.transformAsync(Futures.java:456) ~[bundleFile:?]
      	at org.opendaylight.yangtools.yang.parser.repo.SharedEffectiveModelContextFactory.resolveEntry(SharedEffectiveModelContextFactory.java:194) ~[bundleFile:?]
      	at org.opendaylight.yangtools.yang.parser.repo.SharedEffectiveModelContextFactory.computeModel(SharedEffectiveModelContextFactory.java:176) ~[bundleFile:?]
      	at org.opendaylight.yangtools.yang.parser.repo.SharedEffectiveModelContextFactory.createEffectiveModel(SharedEffectiveModelContextFactory.java:134) ~[bundleFile:?]
      	at org.opendaylight.yangtools.yang.parser.repo.SharedEffectiveModelContextFactory.createEffectiveModelContext(SharedEffectiveModelContextFactory.java:129) ~[bundleFile:?]
      	at org.opendaylight.netconf.sal.connect.netconf.NetconfDevice$SchemaSetup.trySetupSchema(NetconfDevice.java:510) ~[bundleFile:?]
      	at org.opendaylight.netconf.sal.connect.netconf.NetconfDevice$SchemaSetup.startResolution(NetconfDevice.java:463) ~[bundleFile:?]
      	at org.opendaylight.netconf.sal.connect.netconf.NetconfDevice.assembleSchemaContext(NetconfDevice.java:304) ~[bundleFile:?]
      	at org.opendaylight.netconf.sal.connect.netconf.NetconfDevice.lambda$onRemoteSessionUp$0(NetconfDevice.java:175) ~[bundleFile:?]
      	at com.google.common.util.concurrent.AbstractTransformFuture$AsyncTransformFuture.doTransform(AbstractTransformFuture.java:221) [bundleFile:?]
      	at com.google.common.util.concurrent.AbstractTransformFuture$AsyncTransformFuture.doTransform(AbstractTransformFuture.java:208) [bundleFile:?]
      	at com.google.common.util.concurrent.AbstractTransformFuture.run(AbstractTransformFuture.java:122) [bundleFile:?]
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
      	at java.lang.Thread.run(Thread.java:834) [?:?]
      Caused by: org.opendaylight.yangtools.yang.parser.api.YangParserException: Failed to assemble sources
      	at org.opendaylight.yangtools.yang.parser.impl.DefaultYangParser.decodeReactorException(DefaultYangParser.java:104) ~[bundleFile:?]
      	at org.opendaylight.yangtools.yang.parser.impl.DefaultYangParser.buildEffectiveModel(DefaultYangParser.java:98) ~[bundleFile:?]
      	at org.opendaylight.yangtools.yang.parser.repo.AssembleSources.apply(AssembleSources.java:91) ~[bundleFile:?]
      	... 24 more
      Caused by: org.opendaylight.yangtools.yang.parser.spi.meta.SomeModifiersUnresolvedException: Some of EFFECTIVE_MODEL modifiers for statements were not resolved.
      	at org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.addSourceExceptions(BuildGlobalContext.java:336) ~[bundleFile:?]
      	at org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.completePhaseActions(BuildGlobalContext.java:398) ~[bundleFile:?]
      	at org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.executePhases(BuildGlobalContext.java:199) ~[bundleFile:?]
      	at org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.buildEffective(BuildGlobalContext.java:210) ~[bundleFile:?]
      	at org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor$BuildAction.buildEffective(CrossSourceStatementReactor.java:224) ~[bundleFile:?]
      	at org.opendaylight.yangtools.yang.parser.impl.DefaultYangParser.buildEffectiveModel(DefaultYangParser.java:96) ~[bundleFile:?]
      	at org.opendaylight.yangtools.yang.parser.repo.AssembleSources.apply(AssembleSources.java:91) ~[bundleFile:?]
      	... 24 more
      Caused by: org.opendaylight.yangtools.yang.parser.spi.meta.InferenceException: Deviation target 'Absolute{qnames=[(urn:orig)foo, bar, baz]}' not found. [at cache/ncserver/deviate.yang:9:3]
      	at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.deviate.AbstractDeviateStatementSupport$1.prerequisiteFailed(AbstractDeviateStatementSupport.java:175) ~[bundleFile:?]
      	at org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl.failModifier(ModifierImpl.java:87) ~[bundleFile:?]
      	at org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext.failModifiers(SourceSpecificContext.java:383) ~[bundleFile:?]
      	at org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.addSourceExceptions(BuildGlobalContext.java:307) ~[bundleFile:?]
      	at org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.completePhaseActions(BuildGlobalContext.java:398) ~[bundleFile:?]
      	at org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.executePhases(BuildGlobalContext.java:199) ~[bundleFile:?]
      	at org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.buildEffective(BuildGlobalContext.java:210) ~[bundleFile:?]
      	at org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor$BuildAction.buildEffective(CrossSourceStatementReactor.java:224) ~[bundleFile:?]
      	at org.opendaylight.yangtools.yang.parser.impl.DefaultYangParser.buildEffectiveModel(DefaultYangParser.java:96) ~[bundleFile:?]
      	at org.opendaylight.yangtools.yang.parser.repo.AssembleSources.apply(AssembleSources.java:91) ~[bundleFile:?]
      	... 24 more
      2022-04-14T14:17:30,780 | DEBUG | remote-connector-processing-executor-11 | NetconfDevice                    | 282 - org.opendaylight.netconf.sal-netconf-connector - 3.0.1.SNAPSHOT | RemoteDevice{ncserver}: no more sources for schema context
      2022-04-14T14:17:30,782 | WARN  | remote-connector-processing-executor-12 | NetconfDevice                    | 282 - org.opendaylight.netconf.sal-netconf-connector - 3.0.1.SNAPSHOT | RemoteDevice{ncserver}: Unexpected error resolving device sources
      org.opendaylight.netconf.sal.connect.netconf.NetconfDevice$EmptySchemaContextException: RemoteDevice{ncserver}: No more sources for schema context
      	at org.opendaylight.netconf.sal.connect.netconf.NetconfDevice$SchemaSetup.trySetupSchema(NetconfDevice.java:514) ~[bundleFile:?]
      	at org.opendaylight.netconf.sal.connect.netconf.NetconfDevice$SchemaSetup.onFailure(NetconfDevice.java:503) ~[bundleFile:?]
      	at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1124) ~[bundleFile:?]
      	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31) ~[bundleFile:?]
      	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270) [bundleFile:?]
      	at com.google.common.util.concurrent.AbstractFuture.addListener(AbstractFuture.java:761) [bundleFile:?]
      	at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.addListener(AbstractFuture.java:136) ~[bundleFile:?]
      	at com.google.common.util.concurrent.Futures.addCallback(Futures.java:1105) ~[bundleFile:?]
      	at org.opendaylight.netconf.sal.connect.netconf.NetconfDevice$SchemaSetup.trySetupSchema(NetconfDevice.java:510) ~[bundleFile:?]
      	at org.opendaylight.netconf.sal.connect.netconf.NetconfDevice$SchemaSetup.startResolution(NetconfDevice.java:463) ~[bundleFile:?]
      	at org.opendaylight.netconf.sal.connect.netconf.NetconfDevice.assembleSchemaContext(NetconfDevice.java:304) ~[bundleFile:?]
      	at org.opendaylight.netconf.sal.connect.netconf.NetconfDevice.lambda$onRemoteSessionUp$0(NetconfDevice.java:175) ~[bundleFile:?]
      	at com.google.common.util.concurrent.AbstractTransformFuture$AsyncTransformFuture.doTransform(AbstractTransformFuture.java:221) ~[bundleFile:?]
      	at com.google.common.util.concurrent.AbstractTransformFuture$AsyncTransformFuture.doTransform(AbstractTransformFuture.java:208) ~[bundleFile:?]
      	at com.google.common.util.concurrent.AbstractTransformFuture.run(AbstractTransformFuture.java:122) [bundleFile:?]
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
      	at java.lang.Thread.run(Thread.java:834) [?:?]
      2022-04-14T14:17:30,784 | ERROR | remote-connector-processing-executor-12 | NetconfDevice                    | 282 - org.opendaylight.netconf.sal-netconf-connector - 3.0.1.SNAPSHOT | RemoteDevice{ncserver}: Initialization in sal failed, disconnecting from device
      org.opendaylight.netconf.sal.connect.netconf.NetconfDevice$EmptySchemaContextException: RemoteDevice{ncserver}: No more sources for schema context
      	at org.opendaylight.netconf.sal.connect.netconf.NetconfDevice$SchemaSetup.trySetupSchema(NetconfDevice.java:514) ~[bundleFile:?]
      	at org.opendaylight.netconf.sal.connect.netconf.NetconfDevice$SchemaSetup.onFailure(NetconfDevice.java:503) ~[bundleFile:?]
      	at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1124) ~[bundleFile:?]
      	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31) ~[bundleFile:?]
      	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270) [bundleFile:?]
      	at com.google.common.util.concurrent.AbstractFuture.addListener(AbstractFuture.java:761) [bundleFile:?]
      	at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.addListener(AbstractFuture.java:136) ~[bundleFile:?]
      	at com.google.common.util.concurrent.Futures.addCallback(Futures.java:1105) ~[bundleFile:?]
      	at org.opendaylight.netconf.sal.connect.netconf.NetconfDevice$SchemaSetup.trySetupSchema(NetconfDevice.java:510) ~[bundleFile:?]
      	at org.opendaylight.netconf.sal.connect.netconf.NetconfDevice$SchemaSetup.startResolution(NetconfDevice.java:463) ~[bundleFile:?]
      	at org.opendaylight.netconf.sal.connect.netconf.NetconfDevice.assembleSchemaContext(NetconfDevice.java:304) ~[bundleFile:?]
      	at org.opendaylight.netconf.sal.connect.netconf.NetconfDevice.lambda$onRemoteSessionUp$0(NetconfDevice.java:175) ~[bundleFile:?]
      	at com.google.common.util.concurrent.AbstractTransformFuture$AsyncTransformFuture.doTransform(AbstractTransformFuture.java:221) ~[bundleFile:?]
      	at com.google.common.util.concurrent.AbstractTransformFuture$AsyncTransformFuture.doTransform(AbstractTransformFuture.java:208) ~[bundleFile:?]
      	at com.google.common.util.concurrent.AbstractTransformFuture.run(AbstractTransformFuture.java:122) [bundleFile:?]
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
      	at java.lang.Thread.run(Thread.java:834) [?:?]
      2022-04-14T14:17:30,787 | WARN  | remote-connector-processing-executor-12 | NetconfDeviceCommunicator        | 282 - org.opendaylight.netconf.sal-netconf-connector - 3.0.1.SNAPSHOT | RemoteDevice{ncserver}: Session terminated Session closed
      2022-04-14T14:17:30,787 | DEBUG | remote-connector-processing-executor-12 | NetconfDeviceCommunicator        | 282 - org.opendaylight.netconf.sal-netconf-connector - 3.0.1.SNAPSHOT | Tearing down Session closed
      2022-04-14T14:17:30,788 | DEBUG | globalWorkerGroup-3-1 | AbstractNetconfSession           | 277 - org.opendaylight.netconf.netty-util - 3.0.1.SNAPSHOT | Channel [id: 0xc87fcd5a] inactive.
      2022-04-14T14:17:30,788 | DEBUG | globalWorkerGroup-3-1 | AbstractNetconfSession           | 277 - org.opendaylight.netconf.netty-util - 3.0.1.SNAPSHOT | Session NetconfClientSession{sessionId=3, channel=[id: 0xc87fcd5a]} end of input detected while session was in state initialized
      2022-04-14T14:17:30,788 | DEBUG | globalWorkerGroup-3-1 | NetconfClientSessionImpl         | 284 - org.opendaylight.netconf.shaded-sshd - 3.0.1.SNAPSHOT | close(NetconfClientSessionImpl[netconf@/10.100.18.43:830]) Closing gracefully
      

            rovarga Robert Varga
            sangwookha Sangwook Ha
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: