<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 19:56:41 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-1885] VerifyException during transaction close</title>
                <link>https://jira.opendaylight.org/browse/CONTROLLER-1885</link>
                <project id="10113" key="CONTROLLER">controller</project>
                    <description>&lt;p&gt;During validation of tell-based protocol with openflowplugin, the following splat occurred:&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;2019-02-19T18:12:22,772 | ERROR | Framework stop&#160;&#160; | BeanRecipe&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; | 69 - org.apache.aries.blueprint.core - 1.10.1 | The blueprint bean flowCapableTopologyProvider in bundle org.opendaylight.openflowplugin.applications.topology-manager/0.9.0.SNAPSHOT incorrectly threw an exception from its destroy
&#160;method.
java.lang.IllegalStateException: Uncaught exception occured during closing transaction
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.controller.cluster.databroker.AbstractDOMBrokerTransaction.closeSubtransactions(AbstractDOMBrokerTransaction.java:91) ~[?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.controller.cluster.databroker.AbstractDOMBrokerWriteTransaction.cancel(AbstractDOMBrokerWriteTransaction.java:110) ~[?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.controller.sal.core.compat.LegacyDOMDataBrokerAdapter$DOMDataTransactionAdapter.cancel(LegacyDOMDataBrokerAdapter.java:287) ~[?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.controller.md.sal.dom.broker.impl.PingPongTransactionChain.cancelTransaction(PingPongTransactionChain.java:346) ~[?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.controller.md.sal.dom.broker.impl.PingPongTransactionChain$4.cancel(PingPongTransactionChain.java:463) ~[?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.controller.md.sal.binding.impl.AbstractWriteTransaction.doCancel(AbstractWriteTransaction.java:133) ~[?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.controller.md.sal.binding.impl.BindingDOMWriteTransactionAdapter.cancel(BindingDOMWriteTransactionAdapter.java:76) ~[?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.openflowplugin.common.txchain.TransactionChainManager.closeTransactionChain(TransactionChainManager.java:150) ~[?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.openflowplugin.common.txchain.TransactionChainManager.close(TransactionChainManager.java:355) ~[?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.openflowplugin.applications.topology.manager.FlowCapableTopologyProvider.close(FlowCapableTopologyProvider.java:86) ~[?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.apache.aries.blueprint.utils.ReflectionUtils.invoke(ReflectionUtils.java:337) ~[69:org.apache.aries.blueprint.core:1.10.1]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.apache.aries.blueprint.container.BeanRecipe.invoke(BeanRecipe.java:835) ~[69:org.apache.aries.blueprint.core:1.10.1]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.apache.aries.blueprint.container.BeanRecipe.destroy(BeanRecipe.java:742) [69:org.apache.aries.blueprint.core:1.10.1]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.apache.aries.blueprint.container.BlueprintRepository.destroy(BlueprintRepository.java:434) [69:org.apache.aries.blueprint.core:1.10.1]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.apache.aries.blueprint.container.BlueprintContainerImpl.destroyComponents(BlueprintContainerImpl.java:758) [69:org.apache.aries.blueprint.core:1.10.1]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.apache.aries.blueprint.container.BlueprintContainerImpl.tidyupComponents(BlueprintContainerImpl.java:967) [69:org.apache.aries.blueprint.core:1.10.1]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.apache.aries.blueprint.container.BlueprintContainerImpl.destroy(BlueprintContainerImpl.java:903) [69:org.apache.aries.blueprint.core:1.10.1]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.apache.aries.blueprint.container.BlueprintExtender$3.run(BlueprintExtender.java:324) [69:org.apache.aries.blueprint.core:1.10.1]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.apache.aries.blueprint.container.BlueprintExtender.destroyContainer(BlueprintExtender.java:345) [69:org.apache.aries.blueprint.core:1.10.1]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.apache.aries.blueprint.container.BlueprintExtender.access$400(BlueprintExtender.java:68) [69:org.apache.aries.blueprint.core:1.10.1]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.apache.aries.blueprint.container.BlueprintExtender$BlueprintContainerServiceImpl.destroyContainer(BlueprintExtender.java:631) [69:org.apache.aries.blueprint.core:1.10.1]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.controller.blueprint.BlueprintBundleTracker.shutdownAllContainers(BlueprintBundleTracker.java:292) [198:org.opendaylight.controller.blueprint:0.11.0.SNAPSHOT]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.controller.blueprint.BlueprintBundleTracker.bundleChanged(BlueprintBundleTracker.java:192) [198:org.opendaylight.controller.blueprint:0.11.0.SNAPSHOT]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:908) [?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) [?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148) [?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEventPrivileged(EquinoxEventPublisher.java:213) [?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:120) [?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:112) [?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor.publishModuleEvent(EquinoxContainerAdaptor.java:168) [?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.eclipse.osgi.container.Module.publishEvent(Module.java:476) [?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.eclipse.osgi.container.Module.doStop(Module.java:634) [?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.eclipse.osgi.container.Module.stop(Module.java:498) [?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.eclipse.osgi.container.SystemModule.stop(SystemModule.java:202) [?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.eclipse.osgi.internal.framework.EquinoxBundle$SystemBundle$EquinoxSystemModule$1.run(EquinoxBundle.java:165) [?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at java.lang.Thread.run(Thread.java:748) [?:?]
Caused by: com.google.common.base.VerifyException: Attempted to replay seal on RemoteProxyTransaction{identifier=member-3-datastore-operational-fe-0-chn-2-txn-0-2, state=SUCCESSOR}
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at com.google.common.base.Verify.verify(Verify.java:181) ~[?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.controller.cluster.databroker.actors.dds.AbstractProxyTransaction.sealOnly(AbstractProxyTransaction.java:369) ~[?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.controller.cluster.databroker.actors.dds.RemoteProxyTransaction.handleForwardedModifyTransactionRequest(RemoteProxyTransaction.java:350) ~[?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.controller.cluster.databroker.actors.dds.RemoteProxyTransaction.handleForwardedRequest(RemoteProxyTransaction.java:305) ~[?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.controller.cluster.databroker.actors.dds.RemoteProxyTransaction.forwardToRemote(RemoteProxyTransaction.java:300) ~[?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.controller.cluster.databroker.actors.dds.AbstractProxyTransaction.forwardToSuccessor(AbstractProxyTransaction.java:780) ~[?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.controller.cluster.databroker.actors.dds.AbstractProxyTransaction.forwardRequest(AbstractProxyTransaction.java:772) ~[?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.controller.cluster.databroker.actors.dds.ProxyHistory$ReconnectCohort.forwardEntry(ProxyHistory.java:291) ~[?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.controller.cluster.databroker.actors.dds.BouncingReconnectForwarder.forwardEntry(BouncingReconnectForwarder.java:61) ~[?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.controller.cluster.access.client.TransmitQueue.enqueueOrForward(TransmitQueue.java:266) ~[?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.controller.cluster.access.client.AbstractClientConnection.enqueueOrForward(AbstractClientConnection.java:182) ~[?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.controller.cluster.access.client.AbstractClientConnection.sendEntry(AbstractClientConnection.java:256) ~[?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.controller.cluster.access.client.SimpleReconnectForwarder.forwardEntry(SimpleReconnectForwarder.java:18) ~[?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.controller.cluster.access.client.TransmitQueue.enqueueOrForward(TransmitQueue.java:266) ~[?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.controller.cluster.access.client.AbstractClientConnection.enqueueOrForward(AbstractClientConnection.java:182) ~[?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.controller.cluster.access.client.AbstractClientConnection.sendEntry(AbstractClientConnection.java:256) ~[?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.controller.cluster.access.client.AbstractClientConnection.sendRequest(AbstractClientConnection.java:158) ~[?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.controller.cluster.databroker.actors.dds.ProxyHistory.sendRequest(ProxyHistory.java:448) ~[?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.controller.cluster.databroker.actors.dds.AbstractProxyTransaction.sendRequest(AbstractProxyTransaction.java:325) ~[?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.controller.cluster.databroker.actors.dds.AbstractProxyTransaction.abort(AbstractProxyTransaction.java:436) ~[?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at java.util.concurrent.ConcurrentHashMap$ValuesView.forEach(ConcurrentHashMap.java:4707) ~[?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.controller.cluster.databroker.actors.dds.AbstractClientHandle.commonAbort(AbstractClientHandle.java:81) ~[?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.controller.cluster.databroker.actors.dds.AbstractClientHandle.abort(AbstractClientHandle.java:67) ~[?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.controller.cluster.databroker.ClientBackedTransaction.close(ClientBackedTransaction.java:78) ~[?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.controller.cluster.databroker.AbstractDOMBrokerTransaction.closeSubtransactions(AbstractDOMBrokerTransaction.java:87) ~[?:?]
&#160;&#160;&#160;&#160;&#160;&#160;&#160; ... 41 more
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment></environment>
        <key id="31454">CONTROLLER-1885</key>
            <summary>VerifyException during transaction close</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>Wed, 20 Feb 2019 10:33:18 +0000</created>
                <updated>Wed, 20 Feb 2019 22:05:15 +0000</updated>
                            <resolved>Wed, 20 Feb 2019 22:05:15 +0000</resolved>
                                    <version>Neon</version>
                    <version>Fluorine SR1</version>
                    <version>Sodium</version>
                                    <fixVersion>Neon</fixVersion>
                    <fixVersion>Fluorine SR2</fixVersion>
                    <fixVersion>Sodium</fixVersion>
                                    <component>clustering</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="66465" author="rovarga" created="Wed, 20 Feb 2019 11:38:25 +0000"  >&lt;p&gt;This looks like a reconnect race, where the RemoteProxyTransaction.handleForwardedRequest() path does not account for the possibility of a successor being present. Unlike &quot;replay&quot; methods, which are invoked from the thread handling reconnect, &quot;forward&quot; methods are executed in application threads and therefore need to properly handle synchronization.&lt;/p&gt;</comment>
                            <comment id="66466" author="rovarga" created="Wed, 20 Feb 2019 13:17:41 +0000"  >&lt;p&gt;Since the forward path already uses sendRequest(), which handles the propagation towards the successor, we should be fine with just removing the assertion from that path.&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|i03mqv:</customfieldvalue>

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