VOL-2910: back-to-back sanity test fails with multiple ONUs
- An invalid index was used to access the AllocIDMgmtLock and
GemPortIDMgmtLock array causing panic. OnuID was used instead
of IntfID.
Change-Id: Ie838b6b182866378c2441c304a189e4f39e29438
(cherry picked from commit 0c595bae06cc4aa9d2913bf6bcf53f8b2f57a676)
diff --git a/VERSION b/VERSION
index 97e787b..951d17f 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-2.3.23-dev
+2.3.23
diff --git a/internal/pkg/resourcemanager/resourcemanager.go b/internal/pkg/resourcemanager/resourcemanager.go
index 107cd2c..8907323 100755
--- a/internal/pkg/resourcemanager/resourcemanager.go
+++ b/internal/pkg/resourcemanager/resourcemanager.go
@@ -809,19 +809,19 @@
IntfOnuIDUniID := fmt.Sprintf("%d,%d,%d", intfID, onuID, uniID)
- RsrcMgr.AllocIDMgmtLock[onuID].Lock()
+ RsrcMgr.AllocIDMgmtLock[intfID].Lock()
AllocIDs := RsrcMgr.ResourceMgrs[intfID].GetCurrentAllocIDForOnu(ctx, IntfOnuIDUniID)
RsrcMgr.ResourceMgrs[intfID].FreeResourceID(ctx, intfID,
ponrmgr.ALLOC_ID,
AllocIDs)
- RsrcMgr.AllocIDMgmtLock[onuID].Unlock()
+ RsrcMgr.AllocIDMgmtLock[intfID].Unlock()
- RsrcMgr.GemPortIDMgmtLock[onuID].Lock()
+ RsrcMgr.GemPortIDMgmtLock[intfID].Lock()
GEMPortIDs := RsrcMgr.ResourceMgrs[intfID].GetCurrentGEMPortIDsForOnu(ctx, IntfOnuIDUniID)
RsrcMgr.ResourceMgrs[intfID].FreeResourceID(ctx, intfID,
ponrmgr.GEMPORT_ID,
GEMPortIDs)
- RsrcMgr.GemPortIDMgmtLock[onuID].Unlock()
+ RsrcMgr.GemPortIDMgmtLock[intfID].Unlock()
RsrcMgr.FlowIDMgmtLock.Lock()
FlowIDs := RsrcMgr.ResourceMgrs[intfID].GetCurrentFlowIDsForOnu(ctx, IntfOnuIDUniID)