<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 19:57:03 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>[CONTROLLER-2039] Guard against InMemoryDataTreeModification.newModification() throwing IAE</title>
                <link>https://jira.opendaylight.org/browse/CONTROLLER-2039</link>
                <project id="10113" key="CONTROLLER">controller</project>
                    <description>&lt;p&gt;As noted in &lt;a href=&quot;https://jira.opendaylight.org/browse/BGPCEP-1005&quot; title=&quot;Race between topology manager and PCEP session&quot; class=&quot;issue-link&quot; data-issue-key=&quot;BGPCEP-1005&quot;&gt;&lt;del&gt;BGPCEP-1005&lt;/del&gt;&lt;/a&gt; we can encounter this exception:&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.IllegalArgumentException: Metadata not available for modification ModifiedNode{identifier=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=pcc://10.30.170.51}], operation=TOUCH, modificationType=SUBTREE_MODIFIED, childModification={AugmentationIdentifier{childNames=[(urn:opendaylight:params:xml:ns:yang:topology:pcep:stats?revision=2018-11-09)pcep-session-state]}=ModifiedNode{identifier=AugmentationIdentifier{childNames=[(urn:opendaylight:params:xml:ns:yang:topology:pcep:stats?revision=2018-11-09)pcep-session-state]}, operation=WRITE, modificationType=WRITE}}}
	at com.google.common.base.Preconditions.checkArgument(Preconditions.java:220) ~[bundleFile:?]
	at org.opendaylight.yangtools.yang.data.tree.impl.SchemaAwareApplyOperation.apply(SchemaAwareApplyOperation.java:234) ~[bundleFile:?]
	at org.opendaylight.yangtools.yang.data.tree.impl.AbstractNodeContainerModificationStrategy.mutateChildren(AbstractNodeContainerModificationStrategy.java:219) ~[bundleFile:?]
	at org.opendaylight.yangtools.yang.data.tree.impl.AbstractNodeContainerModificationStrategy.applyTouch(AbstractNodeContainerModificationStrategy.java:329) ~[bundleFile:?]
	at org.opendaylight.yangtools.yang.data.tree.impl.SchemaAwareApplyOperation.apply(SchemaAwareApplyOperation.java:235) ~[bundleFile:?]
	at org.opendaylight.yangtools.yang.data.tree.impl.MapModificationStrategy.lambda$apply$0(MapModificationStrategy.java:66) ~[bundleFile:?]
	at org.opendaylight.yangtools.yang.data.tree.impl.AutomaticLifecycleMixin.applyTouch(AutomaticLifecycleMixin.java:70) ~[bundleFile:?]
	at org.opendaylight.yangtools.yang.data.tree.impl.AutomaticLifecycleMixin.apply(AutomaticLifecycleMixin.java:58) ~[bundleFile:?]
	at org.opendaylight.yangtools.yang.data.tree.impl.MapModificationStrategy.apply(MapModificationStrategy.java:66) ~[bundleFile:?]
	at org.opendaylight.yangtools.yang.data.tree.impl.AbstractNodeContainerModificationStrategy.mutateChildren(AbstractNodeContainerModificationStrategy.java:219) ~[bundleFile:?]
	at org.opendaylight.yangtools.yang.data.tree.impl.AbstractNodeContainerModificationStrategy.applyTouch(AbstractNodeContainerModificationStrategy.java:329) ~[bundleFile:?]
	at org.opendaylight.yangtools.yang.data.tree.impl.SchemaAwareApplyOperation.apply(SchemaAwareApplyOperation.java:235) ~[bundleFile:?]
	at org.opendaylight.yangtools.yang.data.tree.impl.AbstractNodeContainerModificationStrategy.mutateChildren(AbstractNodeContainerModificationStrategy.java:219) ~[bundleFile:?]
	at org.opendaylight.yangtools.yang.data.tree.impl.AbstractNodeContainerModificationStrategy.applyTouch(AbstractNodeContainerModificationStrategy.java:329) ~[bundleFile:?]
	at org.opendaylight.yangtools.yang.data.tree.impl.SchemaAwareApplyOperation.apply(SchemaAwareApplyOperation.java:235) ~[bundleFile:?]
	at org.opendaylight.yangtools.yang.data.tree.impl.MapModificationStrategy.lambda$apply$0(MapModificationStrategy.java:66) ~[bundleFile:?]
	at org.opendaylight.yangtools.yang.data.tree.impl.AutomaticLifecycleMixin.apply(AutomaticLifecycleMixin.java:61) ~[bundleFile:?]
	at org.opendaylight.yangtools.yang.data.tree.impl.MapModificationStrategy.apply(MapModificationStrategy.java:66) ~[bundleFile:?]
	at org.opendaylight.yangtools.yang.data.tree.impl.AbstractNodeContainerModificationStrategy.mutateChildren(AbstractNodeContainerModificationStrategy.java:219) ~[bundleFile:?]
	at org.opendaylight.yangtools.yang.data.tree.impl.AbstractNodeContainerModificationStrategy.applyTouch(AbstractNodeContainerModificationStrategy.java:329) ~[bundleFile:?]
	at org.opendaylight.yangtools.yang.data.tree.impl.SchemaAwareApplyOperation.apply(SchemaAwareApplyOperation.java:235) ~[bundleFile:?]
	at org.opendaylight.yangtools.yang.data.tree.impl.StructuralContainerModificationStrategy.lambda$apply$0(StructuralContainerModificationStrategy.java:37) ~[bundleFile:?]
	at org.opendaylight.yangtools.yang.data.tree.impl.AutomaticLifecycleMixin.apply(AutomaticLifecycleMixin.java:61) ~[bundleFile:?]
	at org.opendaylight.yangtools.yang.data.tree.impl.StructuralContainerModificationStrategy.apply(StructuralContainerModificationStrategy.java:37) ~[bundleFile:?]
	at org.opendaylight.yangtools.yang.data.tree.impl.AbstractNodeContainerModificationStrategy.mutateChildren(AbstractNodeContainerModificationStrategy.java:219) ~[bundleFile:?]
	at org.opendaylight.yangtools.yang.data.tree.impl.AbstractNodeContainerModificationStrategy.applyTouch(AbstractNodeContainerModificationStrategy.java:329) ~[bundleFile:?]
	at org.opendaylight.yangtools.yang.data.tree.impl.SchemaAwareApplyOperation.apply(SchemaAwareApplyOperation.java:235) ~[bundleFile:?]
	at org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTreeModification.newModification(InMemoryDataTreeModification.java:217) ~[bundleFile:?]
	at org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTreeModification.newModification(InMemoryDataTreeModification.java:34) ~[bundleFile:?]
	at org.opendaylight.controller.cluster.databroker.actors.dds.LocalReadWriteProxyTransaction.&amp;lt;init&amp;gt;(LocalReadWriteProxyTransaction.java:89) ~[bundleFile:?]
	at org.opendaylight.controller.cluster.databroker.actors.dds.ProxyHistory$Local.doCreateTransactionProxy(ProxyHistory.java:120) ~[bundleFile:?]
	at org.opendaylight.controller.cluster.databroker.actors.dds.ProxyHistory.createTransactionProxy(ProxyHistory.java:425) ~[bundleFile:?]
	at org.opendaylight.controller.cluster.databroker.actors.dds.ProxyHistory.createTransactionProxy(ProxyHistory.java:412) ~[bundleFile:?]
	at org.opendaylight.controller.cluster.databroker.actors.dds.AbstractClientHistory.createTransactionProxy(AbstractClientHistory.java:202) ~[bundleFile:?]
	at org.opendaylight.controller.cluster.databroker.actors.dds.ClientTransaction.createProxy(ClientTransaction.java:144) ~[bundleFile:?]
	at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1705) ~[?:?]
	at org.opendaylight.controller.cluster.databroker.actors.dds.AbstractClientHandle.ensureProxy(AbstractClientHandle.java:115) ~[bundleFile:?]
	at org.opendaylight.controller.cluster.databroker.actors.dds.AbstractClientHandle.ensureProxy(AbstractClientHandle.java:111) ~[bundleFile:?]
	at org.opendaylight.controller.cluster.databroker.actors.dds.ClientTransaction.delete(ClientTransaction.java:79) ~[bundleFile:?]
	at org.opendaylight.controller.cluster.databroker.ClientBackedWriteTransaction.delete(ClientBackedWriteTransaction.java:40) ~[bundleFile:?]
	at org.opendaylight.controller.cluster.databroker.AbstractDOMBrokerWriteTransaction.delete(AbstractDOMBrokerWriteTransaction.java:95) ~[bundleFile:?]
	at org.opendaylight.mdsal.dom.spi.ForwardingDOMDataReadWriteTransaction.delete(ForwardingDOMDataReadWriteTransaction.java:62) ~[bundleFile:?]
	at org.opendaylight.mdsal.binding.dom.adapter.BindingDOMWriteTransactionAdapter.delete(BindingDOMWriteTransactionAdapter.java:65) ~[bundleFile:?]
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;This can happen when we are chaining modifications on top of each other and the previous transaction cannot be applied to the baseline snapshot. In this particular case we have a request to write an augmentation into a node which does not exist. Since the modification has only been ready(), but has not gone through validation, we have not detected this problem.&lt;/p&gt;

&lt;p&gt;When this happens the transaction chain is on its way out, so we should just capture the problem, disregard any modifications and fail any reads.&lt;/p&gt;</description>
                <environment></environment>
        <key id="35511">CONTROLLER-2039</key>
            <summary>Guard against InMemoryDataTreeModification.newModification() throwing IAE</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="10000">Done</resolution>
                                        <assignee username="rovarga">Robert Varga</assignee>
                                    <reporter username="rovarga">Robert Varga</reporter>
                        <labels>
                    </labels>
                <created>Tue, 19 Apr 2022 19:39:36 +0000</created>
                <updated>Sun, 24 Apr 2022 23:45:10 +0000</updated>
                            <resolved>Sun, 24 Apr 2022 23:45:10 +0000</resolved>
                                                    <fixVersion>4.0.11</fixVersion>
                    <fixVersion>5.0.3</fixVersion>
                                    <component>clustering</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                    <issuelinks>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                            <outwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="35510">BGPCEP-1005</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="35714">CONTROLLER-2041</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|i04253:</customfieldvalue>

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