[OPNFLWPLUG-940] Suspected (not sure) TransactionChain leak in TransactionChainManager Created: 04/Sep/17  Updated: 27/Sep/21  Resolved: 06/Sep/17

Status: Resolved
Project: OpenFlowPlugin
Component/s: General
Affects Version/s: None
Fix Version/s: None

Type: Bug
Reporter: Michael Vorburger Assignee: Unassigned
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issue Links:
Blocks
blocks OPNFLWPLUG-933 IllegalStateException: Attempted to c... Resolved
blocks NETVIRT-883 Umbrella parent issue for grouping al... Resolved
Duplicate
duplicates OPNFLWPLUG-933 IllegalStateException: Attempted to c... Resolved
External issue ID: 9101

 Description   

As part of ongoing efforts under NETVIRT-883 we've stumbled upon what could be (but I'm not sure) a suspected TransactionChain leak in TransactionChainManager. – This looks similar to OPNFLWPLUG-933 BUT:

(a) OPNFLWPLUG-933 looks more like an impact (IllegalStateException: Attempted to close chain with outstanding transaction) whereas this MAY be the cause of that , found via new CONTROLLER-1760 tooling (which was not yet available when OPNFLWPLUG-933 was raised!) ...

(b) therefore the stack trace here is sufficiently different from OPNFLWPLUG-933 (e.g. ContextChainImpl as well as DeviceContextImpl lazyTransactionManagerInitialization VS initialSubmitTransaction)

So I thought it to be potentially useful to open as a separate new bug, even if ultimately is it closed as a duplicated of OPNFLWPLUG-933 after all.

Below (NB 4x) is from a test env that just started, not yet doing much under load; we hope to be able to update this tomorrow with more about whether we saw that 4x go up under load.

___
DataBroker : createTransactionChain()
4x TransactionChains opened but not closed here:
org.opendaylight.controller.md.sal.trace.closetracker.impl.CloseTrackedTrait.<init>(CloseTrackedTrait.java:31)
org.opendaylight.controller.md.sal.trace.closetracker.impl.AbstractCloseTracked.<init>(AbstractCloseTracked.java:22)
org.opendaylight.controller.md.sal.trace.dom.impl.TracingTransactionChain.<init>(TracingTransactionChain.java:28)
org.opendaylight.controller.md.sal.trace.dom.impl.TracingBroker.createTransactionChain(TracingBroker.java:330)
org.opendaylight.controller.md.sal.dom.broker.impl.PingPongTransactionChain.<init>(PingPongTransactionChain.java:98)
org.opendaylight.controller.md.sal.dom.broker.impl.PingPongDataBroker.createTransactionChain(PingPongDataBroker.java:47)
org.opendaylight.controller.md.sal.dom.broker.impl.PingPongDataBroker.createTransactionChain(PingPongDataBroker.java:27)
Proxya83f6d64_c9b6_4c7c_8f61_0bd995e3f660.createTransactionChain(Unknown Source)
Proxy7262af10_1ad4_40f0_a8c9_922b6f492a99.createTransactionChain(Unknown Source)
org.opendaylight.controller.md.sal.binding.impl.BindingDOMTransactionChainAdapter.<init>(BindingDOMTransactionChainAdapter.java:45)
org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataBrokerAdapter.createTransactionChain(BindingDOMDataBrokerAdapter.java:74)
Proxye5303411_c218_4285_85cf_8a6f989a6fb8.createTransactionChain(Unknown Source)
Proxyb324b7ea_805d_437b_af8c_e7404580eb1f.createTransactionChain(Unknown Source)
org.opendaylight.openflowplugin.impl.device.TransactionChainManager.createTxChain(TransactionChainManager.java:83)
org.opendaylight.openflowplugin.impl.device.TransactionChainManager.activateTransactionManager(TransactionChainManager.java:114)
org.opendaylight.openflowplugin.impl.device.DeviceContextImpl.lazyTransactionManagerInitialization(DeviceContextImpl.java:674)
org.opendaylight.openflowplugin.impl.device.DeviceContextImpl.instantiateServiceInstance(DeviceContextImpl.java:613)
org.opendaylight.openflowplugin.impl.lifecycle.ContextChainImpl.initializeContextService(ContextChainImpl.java:259)
java.util.concurrent.CopyOnWriteArrayList.forEach(CopyOnWriteArrayList.java:890)
org.opendaylight.openflowplugin.impl.lifecycle.ContextChainImpl.instantiateServiceInstance(ContextChainImpl.java:81)
org.opendaylight.mdsal.singleton.dom.impl.ClusterSingletonServiceRegistrationDelegator.instantiateServiceInstance(ClusterSingletonServiceRegistrationDelegator.java:47)
org.opendaylight.mdsal.singleton.dom.impl.ClusterSingletonServiceGroupImpl.takeOwnership(ClusterSingletonServiceGroupImpl.java:305)
org.opendaylight.mdsal.singleton.dom.impl.ClusterSingletonServiceGroupImpl.ownershipChanged(ClusterSingletonServiceGroupImpl.java:249)
org.opendaylight.mdsal.singleton.dom.impl.AbstractClusterSingletonServiceProviderImpl.ownershipChanged(AbstractClusterSingletonServiceProviderImpl.java:146)
org.opendaylight.mdsal.singleton.dom.impl.DOMClusterSingletonServiceProviderImpl.ownershipChanged(DOMClusterSingletonServiceProviderImpl.java:23)
org.opendaylight.controller.cluster.datastore.entityownership.EntityOwnershipListenerActor.onEntityOwnershipChanged(EntityOwnershipListenerActor.java:44)
org.opendaylight.controller.cluster.datastore.entityownership.EntityOwnershipListenerActor.handleReceive(EntityOwnershipListenerActor.java:33)
org.opendaylight.controller.cluster.common.actor.AbstractUntypedActor.onReceive(AbstractUntypedActor.java:38)
akka.actor.UntypedActor$$anonfun$receive$1.applyOrElse(UntypedActor.scala:165)
akka.actor.Actor$class.aroundReceive(Actor.scala:502)
akka.actor.UntypedActor.aroundReceive(UntypedActor.scala:95)
akka.actor.ActorCell.receiveMessage(ActorCell.scala:526)
akka.actor.ActorCell.invoke(ActorCell.scala:495)
akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257)
akka.dispatch.Mailbox.run(Mailbox.scala:224)
akka.dispatch.Mailbox.exec(Mailbox.scala:234)
scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)



 Comments   
Comment by Michael Vorburger [ 04/Sep/17 ]

> (a) OPNFLWPLUG-933 looks more like an impact (IllegalStateException: Attempted to
> close chain with outstanding transaction) whereas this MAY be the cause of that

hang on, I may getting this upside down? Maybe this is not the cause but the impact of the (new, last week's) "work around" from https://bugs.opendaylight.org/show_bug.cgi?id=9038#c5 for OPNFLWPLUG-933 ?

Comment by Michael Vorburger [ 06/Sep/17 ]

Dupe to OPNFLWPLUG-933 to KISS & avoid general confusion.

Generated at Wed Feb 07 20:33:47 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.