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
diff --git a/VERSION b/VERSION
index 197c4d5..dfb9edc 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-2.4.0
+2.4.1-dev
diff --git a/internal/pkg/resourcemanager/resourcemanager.go b/internal/pkg/resourcemanager/resourcemanager.go
index 540a457..855ebce 100755
--- a/internal/pkg/resourcemanager/resourcemanager.go
+++ b/internal/pkg/resourcemanager/resourcemanager.go
@@ -810,19 +810,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)