Fix issues during connection flap with scaled pcc sessions. 39/92039/5
authorDeepthi V V <dvv@luminanetworks.com>
Tue, 11 Aug 2020 12:31:55 +0000 (18:01 +0530)
committerOlivier Dugeon <olivier.dugeon@orange.com>
Fri, 30 Apr 2021 10:48:49 +0000 (10:48 +0000)
commita162197f9be41a2296e7571ba7bbfac73dce50f7
treea2942c8ac3a36c33a3382f98532bfa0db9ea4c87
parentd73b2dd19bbc0989f1c9fdc44419657d176f26cd
Fix issues during connection flap with scaled pcc sessions.

Back to back pcep sessions results in exceptions and sessions cannot
be established further.

1. Close tx chain when Topology Node State is released
2. Deadlock occurs in TopologyStatsProviderImpl.
T1: Unbind call creates a tx using tx chain and commits it. This
triggers onTxChainFailed call. Lock acquired order:
TopologyStatsProviderImpl -> PingPongTransactionChain
T2: 2nd Unbind call locks on TopologyStatsProviderImpl and tries to
create tx for which lock on PingPongTransactionChain is required.
Thus resulting in deadlock.

Fix: init, closed and recreateTxChain will synhronise on TopologyStatsProviderImpl.
All other tx will be synchronised on txChain.

JIRA: BGPCEP-920
Change-Id: I1f727121843b45a5e6fc722a94319538c7522deb
Signed-off-by: Deepthi V V <dvv@luminanetworks.com>
pcep/topology/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/AbstractTopologySessionListener.java
pcep/topology/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/ServerSessionManager.java
pcep/topology/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/TopologyNodeState.java
pcep/topology/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/session/stats/SessionStateImpl.java
pcep/topology/topology-stats/src/main/java/org/opendaylight/bgpcep/pcep/topology/stats/provider/TopologyStatsProviderImpl.java