<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:55:18 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>OpenDaylight JIRA</title>
    <link>https://jira.opendaylight.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>8.20.10</version>
        <build-number>820010</build-number>
        <build-date>22-06-2022</build-date>
    </build-info>


<item>
            <title>[YANGTOOLS-1139] random failure to create schemaContext - invalid YangNamespaceContext created</title>
                <link>https://jira.opendaylight.org/browse/YANGTOOLS-1139</link>
                <project id="10188" key="YANGTOOLS">yangtools</project>
                    <description>&lt;p&gt;when parsing module ietf-ipv6-unicast-routing it contains some of the when statements like this:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
when &lt;span class=&quot;code-quote&quot;&gt;&quot;derived-from-or-self(../../rt:address-family, &quot;&lt;/span&gt;
       + &lt;span class=&quot;code-quote&quot;&gt;&quot;&lt;span class=&quot;code-quote&quot;&gt;&apos;v6ur:ipv6-unicast&apos;&lt;/span&gt;)&quot;&lt;/span&gt; {
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;parsing this module gives me following error&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;java.lang.IllegalStateException: Failed to assemble SchemaContext	at org.opendaylight.yangtools.yang.test.util.YangParserTestUtils.parseSources(YangParserTestUtils.java:366)
	at org.opendaylight.yangtools.yang.test.util.YangParserTestUtils.parseYangFiles(YangParserTestUtils.java:204)
	at org.opendaylight.yangtools.yang.test.util.YangParserTestUtils.parseYangFiles(YangParserTestUtils.java:190)
	at org.opendaylight.yangtools.yang.test.util.YangParserTestUtils.parseYangResourceDirectory(YangParserTestUtils.java:263)
	at org.opendaylight.yangtools.yang.test.util.YangParserTestUtils.parseYangResourceDirectory(YangParserTestUtils.java:228)
	at org.opendaylight.yangtools.yang.test.util.YangParserTestUtils.parseYangResourceDirectory(YangParserTestUtils.java:216)
	at org.opendaylight.yangtools.yang.model.util.ut.YT1111Test.testFindDataSchemaNode(YT1111Test.java:18)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Caused by: org.opendaylight.yangtools.yang.model.parser.api.YangParserException: Failed to assemble sources
	at org.opendaylight.yangtools.yang.parser.impl.YangParserImpl.decodeReactorException(YangParserImpl.java:110)
	at org.opendaylight.yangtools.yang.parser.impl.YangParserImpl.buildEffectiveModel(YangParserImpl.java:104)
	at org.opendaylight.yangtools.yang.test.util.YangParserTestUtils.parseSources(YangParserTestUtils.java:364)
	... 31 more
Caused by: org.opendaylight.yangtools.yang.parser.spi.meta.SomeModifiersUnresolvedException: Some of FULL_DECLARATION modifiers for statements were not resolved.
	at org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.propagateException(BuildGlobalContext.java:259)
	at org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.loadPhaseStatementsFor(BuildGlobalContext.java:325)
	at org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.loadPhaseStatements(BuildGlobalContext.java:315)
	at org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.executePhases(BuildGlobalContext.java:221)
	at org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.buildEffective(BuildGlobalContext.java:233)
	at org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor$BuildAction.buildEffective(CrossSourceStatementReactor.java:232)
	at org.opendaylight.yangtools.yang.parser.impl.YangParserImpl.buildEffectiveModel(YangParserImpl.java:102)
	... 32 more
Caused by: org.opendaylight.yangtools.yang.parser.spi.source.SourceException: Argument &quot;derived-from-or-self(../../rt:address-family, &apos;v6ur:ipv6-unicast&apos;)&quot; is not valid XPath string [at /home/miroslav/projects/java/yangtools/yang/yang-model-util-ut/target/test-classes/1111/ietf-ipv6-unicast-routing@2018-03-13.yang:81:4]
	at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.XPathSupport.parseXPath(XPathSupport.java:42)
	at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.when.WhenStatementSupport.parseArgumentValue(WhenStatementSupport.java:46)
	at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.when.WhenStatementSupport.parseArgumentValue(WhenStatementSupport.java:25)
	at org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementDefinitionContext.parseArgumentValue(StatementDefinitionContext.java:47)
	at org.opendaylight.yangtools.yang.parser.stmt.reactor.SubstatementContext.&amp;lt;init&amp;gt;(SubstatementContext.java:37)
	at org.opendaylight.yangtools.yang.parser.stmt.reactor.AbstractResumedStatement.createSubstatement(AbstractResumedStatement.java:149)
	at org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext.createDeclaredChild(SourceSpecificContext.java:142)
	at org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextWriter.startStatement(StatementContextWriter.java:70)
	at org.opendaylight.yangtools.yang.parser.rfc7950.repo.StatementContextVisitor.processNewStatement(StatementContextVisitor.java:110)
	at org.opendaylight.yangtools.yang.parser.rfc7950.repo.StatementContextVisitor.processStatement(StatementContextVisitor.java:96)
	at org.opendaylight.yangtools.yang.parser.rfc7950.repo.StatementContextVisitor.doProcessStatement(StatementContextVisitor.java:119)
	at org.opendaylight.yangtools.yang.parser.rfc7950.repo.StatementContextVisitor.processNewStatement(StatementContextVisitor.java:111)
	at org.opendaylight.yangtools.yang.parser.rfc7950.repo.StatementContextVisitor.processStatement(StatementContextVisitor.java:96)
	at org.opendaylight.yangtools.yang.parser.rfc7950.repo.StatementContextVisitor.doProcessStatement(StatementContextVisitor.java:119)
	at org.opendaylight.yangtools.yang.parser.rfc7950.repo.StatementContextVisitor.processNewStatement(StatementContextVisitor.java:111)
	at org.opendaylight.yangtools.yang.parser.rfc7950.repo.StatementContextVisitor.processStatement(StatementContextVisitor.java:96)
	at org.opendaylight.yangtools.yang.parser.rfc7950.repo.StatementContextVisitor.visit(StatementContextVisitor.java:46)
	at org.opendaylight.yangtools.yang.parser.rfc7950.repo.YangStatementStreamSource.writeFull(YangStatementStreamSource.java:126)
	at org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext.loadStatements(SourceSpecificContext.java:369)
	at org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.loadPhaseStatementsFor(BuildGlobalContext.java:323)
	... 37 more
Caused by: javax.xml.xpath.XPathExpressionException: java.lang.IllegalArgumentException: Prefix rt is not bound
	at org.opendaylight.yangtools.yang.xpath.impl.AntlrXPathParser.parseExpr(AntlrXPathParser.java:277)
	at org.opendaylight.yangtools.yang.xpath.impl.AntlrXPathParser$Qualified.parseExpression(AntlrXPathParser.java:151)
	at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.XPathSupport.parseXPath(XPathSupport.java:40)
	... 56 more
Caused by: java.lang.IllegalArgumentException: Prefix rt is not bound
	at com.google.common.base.Preconditions.checkArgument(Preconditions.java:217)
	at org.opendaylight.yangtools.yang.common.YangNamespaceContext.createQName(YangNamespaceContext.java:63)
	at org.opendaylight.yangtools.yang.xpath.impl.AntlrXPathParser$Qualified.createQName(AntlrXPathParser.java:158)
	at org.opendaylight.yangtools.yang.xpath.impl.AntlrXPathParser$Qualified.createStep(AntlrXPathParser.java:164)
	at org.opendaylight.yangtools.yang.xpath.impl.AntlrXPathParser$Qualified.createStep(AntlrXPathParser.java:141)
	at org.opendaylight.yangtools.yang.xpath.impl.AntlrXPathParser.createStep(AntlrXPathParser.java:248)
	at org.opendaylight.yangtools.yang.xpath.impl.AntlrXPathParser.parseStep(AntlrXPathParser.java:620)
	at org.opendaylight.yangtools.yang.xpath.impl.AntlrXPathParser.parseLocationPathSteps(AntlrXPathParser.java:462)
	at org.opendaylight.yangtools.yang.xpath.impl.AntlrXPathParser.parseLocationPath(AntlrXPathParser.java:375)
	at org.opendaylight.yangtools.yang.xpath.impl.AntlrXPathParser.parsePathExpr(AntlrXPathParser.java:409)
	at org.opendaylight.yangtools.yang.xpath.impl.AntlrXPathParser.parseUnion(AntlrXPathParser.java:503)
	at org.opendaylight.yangtools.yang.xpath.impl.AntlrXPathParser.parseUnary(AntlrXPathParser.java:491)
	at org.opendaylight.yangtools.yang.xpath.impl.AntlrXPathParser.parseMultiplicative(AntlrXPathParser.java:391)
	at org.opendaylight.yangtools.yang.xpath.impl.AntlrXPathParser.parseAdditive(AntlrXPathParser.java:306)
	at org.opendaylight.yangtools.yang.xpath.impl.AntlrXPathParser.parseRelational(AntlrXPathParser.java:449)
	at org.opendaylight.yangtools.yang.xpath.impl.AntlrXPathParser.parseEquality(AntlrXPathParser.java:324)
	at org.opendaylight.yangtools.yang.xpath.impl.AntlrXPathParser.parseAnd(AntlrXPathParser.java:313)
	at org.opendaylight.yangtools.yang.xpath.impl.AntlrXPathParser.parseExpr(AntlrXPathParser.java:295)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1654)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
	at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
	at org.opendaylight.yangtools.yang.xpath.impl.AntlrXPathParser.parseFunctionCall(AntlrXPathParser.java:352)
	at org.opendaylight.yangtools.yang.xpath.impl.AntlrXPathParser.parsePrimary(AntlrXPathParser.java:439)
	at org.opendaylight.yangtools.yang.xpath.impl.AntlrXPathParser.parseFilter(AntlrXPathParser.java:330)
	at org.opendaylight.yangtools.yang.xpath.impl.AntlrXPathParser.parsePathExpr(AntlrXPathParser.java:412)
	at org.opendaylight.yangtools.yang.xpath.impl.AntlrXPathParser.parseUnion(AntlrXPathParser.java:503)
	at org.opendaylight.yangtools.yang.xpath.impl.AntlrXPathParser.parseUnary(AntlrXPathParser.java:491)
	at org.opendaylight.yangtools.yang.xpath.impl.AntlrXPathParser.parseMultiplicative(AntlrXPathParser.java:391)
	at org.opendaylight.yangtools.yang.xpath.impl.AntlrXPathParser.parseAdditive(AntlrXPathParser.java:306)
	at org.opendaylight.yangtools.yang.xpath.impl.AntlrXPathParser.parseRelational(AntlrXPathParser.java:449)
	at org.opendaylight.yangtools.yang.xpath.impl.AntlrXPathParser.parseEquality(AntlrXPathParser.java:324)
	at org.opendaylight.yangtools.yang.xpath.impl.AntlrXPathParser.parseAnd(AntlrXPathParser.java:313)
	at org.opendaylight.yangtools.yang.xpath.impl.AntlrXPathParser.parseExpr(AntlrXPathParser.java:295)
	at org.opendaylight.yangtools.yang.xpath.impl.AntlrXPathParser.parseExpr(AntlrXPathParser.java:275)
	... 58 more&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;which is saying that it can not parse XPath String because it doesn t know what rt is. We have this import in a yang file&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
  &lt;span class=&quot;code-keyword&quot;&gt;import&lt;/span&gt; ietf-routing {
    prefix &lt;span class=&quot;code-quote&quot;&gt;&quot;rt&quot;&lt;/span&gt;;
    description
      &quot;An &lt;span class=&quot;code-quote&quot;&gt;&apos;ietf-routing&apos;&lt;/span&gt; module version that is compatible with
       the Network Management Datastore Architecture (NMDA)
       is required.&quot;;
  }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Weird thing is that this does not happen always. If I run test 10 times it will sometimes pass and most of the times fail.&lt;/p&gt;

&lt;p&gt;When I tried to debug it I found out that interface YangNamespaceContextNamespace has following code&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
    &lt;span class=&quot;code-keyword&quot;&gt;static&lt;/span&gt; @NonNull YangNamespaceContext computeIfAbsent(&lt;span class=&quot;code-keyword&quot;&gt;final&lt;/span&gt; StmtContext&amp;lt;?, ?, ?&amp;gt; ctx) {
        &lt;span class=&quot;code-keyword&quot;&gt;final&lt;/span&gt; StmtContext&amp;lt;?, ?, ?&amp;gt; root = ctx.getRoot();
        YangNamespaceContext ret = root.getFromNamespace(YangNamespaceContextNamespace.class, Empty.getInstance());
        &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (ret == &lt;span class=&quot;code-keyword&quot;&gt;null&lt;/span&gt;) {
            verify(ctx &lt;span class=&quot;code-keyword&quot;&gt;instanceof&lt;/span&gt; Mutable, &lt;span class=&quot;code-quote&quot;&gt;&quot;Cannot populate namespace context to %s&quot;&lt;/span&gt;, ctx);
            ret = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; StmtNamespaceContext(ctx);
            ((Mutable&amp;lt;?, ?, ?&amp;gt;)ctx).addToNs(YangNamespaceContextNamespace.class, Empty.getInstance(), ret);
        }
        &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; ret;
    }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;which sometimes returns YangNamespaceContext for module&#160;ietf-ipv6-unicast-routing with moduleToPrefix&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;{QNameModule@2999} &quot;QNameModule{ns=urn:ietf:params:xml:ns:yang:ietf-inet-types, rev=2013-07-15}&quot; -&amp;gt; inet
{QNameModule@3001} &quot;QNameModule{ns=urn:ietf:params:xml:ns:yang:ietf-ip, rev=2018-02-22}&quot; -&amp;gt; ip
{QNameModule@3003} &quot;QNameModule{ns=urn:ietf:params:xml:ns:yang:ietf-interfaces, rev=2018-02-20}&quot; -&amp;gt; if&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;this is when it failes and sometimes it returns only&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;{QNameModule@3008} &quot;QNameModule{ns=urn:ietf:params:xml:ns:yang:ietf-inet-types, rev=2013-07-15}&quot; -&amp;gt; inet
{QNameModule@3011} &quot;QNameModule{ns=urn:ietf:params:xml:ns:yang:ietf-routing, rev=2018-03-13}&quot; -&amp;gt; rt&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;where we have our rt and parsing will run fine..&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</description>
                <environment></environment>
        <key id="33290">YANGTOOLS-1139</key>
            <summary>random failure to create schemaContext - invalid YangNamespaceContext created</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="3" iconUrl="https://jira.opendaylight.org/images/icons/priorities/major.svg">Medium</priority>
                        <status id="5" iconUrl="https://jira.opendaylight.org/images/icons/statuses/resolved.png" description="A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">Resolved</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="10002">Duplicate</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="miro.kovac">Miroslav Kovac</reporter>
                        <labels>
                    </labels>
                <created>Wed, 7 Oct 2020 10:13:27 +0000</created>
                <updated>Wed, 7 Oct 2020 11:35:15 +0000</updated>
                            <resolved>Wed, 7 Oct 2020 10:49:44 +0000</resolved>
                                                                    <component>parser</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                    <issuelinks>
                            <issuelinktype id="10002">
                    <name>Duplicate</name>
                                            <outwardlinks description="duplicates">
                                        <issuelink>
            <issuekey id="33289">YANGTOOLS-1138</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                            <customfield id="customfield_11400" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i03v73:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>