<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:54:39 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-909] MinMaxElementsValidation fails with disappearing list</title>
                <link>https://jira.opendaylight.org/browse/YANGTOOLS-909</link>
                <project id="10188" key="YANGTOOLS">yangtools</project>
                    <description>&lt;p&gt;Downstreams report the following problem:&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;2018-10-11T16:40:34,342 | ERROR | CommitFutures-3&#160; | JobCoordinatorImpl&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; | 284 - org.opendaylight.infrautils.jobcoordinator-impl - 1.5.0.SNAPSHOT | Job still failed on final retry: JobEntry{key=&apos;80b0ade5-e20a-4ddd-9b90-70dfadb80908&apos;, mainWorker=org.opendaylight.genius.interfacemanager.servicebindings.flowbased.listeners.FlowBasedServicesInterfaceStateListener$RendererStateInterfaceUnbindWorker$$Lambda$2087/2140116126@14bc2564, rollbackWorker=null, retryCount=3/3, futures=[com.google.common.util.concurrent.AbstractTransformFuture$TransformFuture@1083a32b[status=FAILURE, cause=[TransactionCommitFailedException{message=canCommit encountered an unexpected failure, errorList=[RpcError [message=canCommit encountered an unexpected failure, severity=ERROR, errorType=APPLICATION, tag=operation-failed, applicationTag=null, info=null, cause=com.google.common.base.VerifyException]]}]]]}
org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException: canCommit encountered an unexpected failure
&#160;&#160;&#160; at org.opendaylight.controller.sal.core.compat.LegacyDOMDataBrokerAdapter$1.newWithCause(LegacyDOMDataBrokerAdapter.java:75) ~[242:org.opendaylight.controller.sal-core-compat:1.9.0.SNAPSHOT]
&#160;&#160;&#160; at org.opendaylight.controller.sal.core.compat.LegacyDOMDataBrokerAdapter$1.newWithCause(LegacyDOMDataBrokerAdapter.java:64) ~[242:org.opendaylight.controller.sal-core-compat:1.9.0.SNAPSHOT]
&#160;&#160;&#160; at org.opendaylight.yangtools.util.concurrent.ExceptionMapper.apply(ExceptionMapper.java:106) ~[426:org.opendaylight.yangtools.util:2.1.1]
&#160;&#160;&#160; at org.opendaylight.controller.sal.core.compat.LegacyDOMDataBrokerAdapter$DOMDataTransactionAdapter$1.onFailure(LegacyDOMDataBrokerAdapter.java:300) [242:org.opendaylight.controller.sal-core-compat:1.9.0.SNAPSHOT]
&#160;&#160;&#160; at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1349) [33:com.google.guava:25.1.0.jre]
&#160;&#160;&#160; at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:398) [33:com.google.guava:25.1.0.jre]
&#160;&#160;&#160; at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1024) [33:com.google.guava:25.1.0.jre]
&#160;&#160;&#160; at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:866) [33:com.google.guava:25.1.0.jre]
&#160;&#160;&#160; at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:711) [33:com.google.guava:25.1.0.jre]
&#160;&#160;&#160; at com.google.common.util.concurrent.AbstractTransformFuture.run(AbstractTransformFuture.java:93) [33:com.google.guava:25.1.0.jre]
&#160;&#160;&#160; at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
&#160;&#160;&#160; at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
&#160;&#160;&#160; at java.lang.Thread.run(Thread.java:748) [?:?]
Caused by: com.google.common.base.VerifyException
&#160;&#160;&#160; at com.google.common.base.Verify.verify(Verify.java:100) ~[33:com.google.guava:25.1.0.jre]
&#160;&#160;&#160; at org.opendaylight.yangtools.yang.data.impl.schema.tree.MinMaxElementsValidation.checkMinMaxElements(MinMaxElementsValidation.java:80) ~[431:org.opendaylight.yangtools.yang-data-impl:2.1.1]
&#160;&#160;&#160; at org.opendaylight.yangtools.yang.data.impl.schema.tree.MinMaxElementsValidation.checkTouchApplicable(MinMaxElementsValidation.java:110) ~[431:org.opendaylight.yangtools.yang-data-impl:2.1.1]
&#160;&#160;&#160; at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:130) ~[431:org.opendaylight.yangtools.yang-data-impl:2.1.1]
&#160;&#160;&#160; at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkChildPreconditions(AbstractNodeContainerModificationStrategy.java:304) ~[431:org.opendaylight.yangtools.yang-data-impl:2.1.1]
&#160;&#160;&#160; at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkTouchApplicable(AbstractNodeContainerModificationStrategy.java:286) ~[431:org.opendaylight.yangtools.yang-data-impl:2.1.1]
&#160;&#160;&#160; at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:130) ~[431:org.opendaylight.yangtools.yang-data-impl:2.1.1]
&#160;&#160;&#160; at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkChildPreconditions(AbstractNodeContainerModificationStrategy.java:304) ~[431:org.opendaylight.yangtools.yang-data-impl:2.1.1]
&#160;&#160;&#160; at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkTouchApplicable(AbstractNodeContainerModificationStrategy.java:286) ~[431:org.opendaylight.yangtools.yang-data-impl:2.1.1]
&#160;&#160;&#160; at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:130) ~[431:org.opendaylight.yangtools.yang-data-impl:2.1.1]
&#160;&#160;&#160; at org.opendaylight.yangtools.yang.data.impl.schema.tree.UnorderedMapModificationStrategy.lambda$checkApplicable$1(UnorderedMapModificationStrategy.java:45) ~[431:org.opendaylight.yangtools.yang-data-impl:2.1.1]
&#160;&#160;&#160; at org.opendaylight.yangtools.yang.data.impl.schema.tree.AutomaticLifecycleMixin.checkApplicable(AutomaticLifecycleMixin.java:111) ~[431:org.opendaylight.yangtools.yang-data-impl:2.1.1]
&#160;&#160;&#160; at org.opendaylight.yangtools.yang.data.impl.schema.tree.UnorderedMapModificationStrategy.checkApplicable(UnorderedMapModificationStrategy.java:45) ~[431:org.opendaylight.yangtools.yang-data-impl:2.1.1]
&#160;&#160;&#160; at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkChildPreconditions(AbstractNodeContainerModificationStrategy.java:304) ~[431:org.opendaylight.yangtools.yang-data-impl:2.1.1]
&#160;&#160;&#160; at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkTouchApplicable(AbstractNodeContainerModificationStrategy.java:286) ~[431:org.opendaylight.yangtools.yang-data-impl:2.1.1]
&#160;&#160;&#160; at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:130) ~[431:org.opendaylight.yangtools.yang-data-impl:2.1.1]
&#160;&#160;&#160; at org.opendaylight.yangtools.yang.data.impl.schema.tree.StructuralContainerModificationStrategy.lambda$checkApplicable$1(StructuralContainerModificationStrategy.java:44) ~[431:org.opendaylight.yangtools.yang-data-impl:2.1.1]
&#160;&#160;&#160; at org.opendaylight.yangtools.yang.data.impl.schema.tree.AutomaticLifecycleMixin.checkApplicable(AutomaticLifecycleMixin.java:111) ~[431:org.opendaylight.yangtools.yang-data-impl:2.1.1]
&#160;&#160;&#160; at org.opendaylight.yangtools.yang.data.impl.schema.tree.StructuralContainerModificationStrategy.checkApplicable(StructuralContainerModificationStrategy.java:44) ~[431:org.opendaylight.yangtools.yang-data-impl:2.1.1]
&#160;&#160;&#160; at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkChildPreconditions(AbstractNodeContainerModificationStrategy.java:304) ~[431:org.opendaylight.yangtools.yang-data-impl:2.1.1]
&#160;&#160;&#160; at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkTouchApplicable(AbstractNodeContainerModificationStrategy.java:286) ~[431:org.opendaylight.yangtools.yang-data-impl:2.1.1]
&#160;&#160;&#160; at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:130) ~[431:org.opendaylight.yangtools.yang-data-impl:2.1.1]
&#160;&#160;&#160; at org.opendaylight.yangtools.yang.data.impl.schema.tree.RootModificationApplyOperation.checkApplicable(RootModificationApplyOperation.java:71) ~[431:org.opendaylight.yangtools.yang-data-impl:2.1.1]
&#160;&#160;&#160; at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractDataTreeTip.validate(AbstractDataTreeTip.java:38) ~[431:org.opendaylight.yangtools.yang-data-impl:2.1.1]
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;This turns out to be an invalid assumption in MinMaxElementsValidation, which needs to be able to deal with the data disappearing after application&lt;/p&gt;</description>
                <environment></environment>
        <key id="30879">YANGTOOLS-909</key>
            <summary>MinMaxElementsValidation fails with disappearing list</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="1" iconUrl="https://jira.opendaylight.org/images/icons/priorities/blocker.svg">Highest</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="10000">Done</resolution>
                                        <assignee username="rovarga">Robert Varga</assignee>
                                    <reporter username="rovarga">Robert Varga</reporter>
                        <labels>
                    </labels>
                <created>Fri, 12 Oct 2018 10:12:07 +0000</created>
                <updated>Sat, 13 Oct 2018 08:56:02 +0000</updated>
                            <resolved>Sat, 13 Oct 2018 08:56:02 +0000</resolved>
                                    <version>2.1.0</version>
                    <version>2.1.1</version>
                                    <fixVersion>2.1.2</fixVersion>
                                    <component>data-impl</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="65333" author="rovarga" created="Fri, 12 Oct 2018 10:14:07 +0000"  >&lt;p&gt;Eliminating the verification here is easy, but writing the UT I came across another problem, where MinMaxElements.apply() would violate TOUCH precondition of metadata being present. A bit more investigation is needed.&lt;/p&gt;</comment>
                            <comment id="65341" author="rovarga" created="Fri, 12 Oct 2018 21:10:28 +0000"  >&lt;p&gt;The fix has a hole around disappearing list, such as when it is one of the alternatives.&lt;/p&gt;</comment>
                    </comments>
                    <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|i03jkv:</customfieldvalue>

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