-
Type: Bug
-
Status: Resolved (View Workflow)
-
Priority: Blocker
-
Resolution: Done
-
Affects Version/s: VOLTHA v2.6
-
Fix Version/s: VOLTHA v2.7
-
Component/s: openolt-adapter
-
Labels:None
-
Environment:
The OpenOLT Adapter uses two different lock when acquiring and releasing resources.
Because of this a race condition exists between GetResourceID and FreeResouceId, allowing two possible failure cases:- IDs are marked as available even if they're not (if a FreeResourceID writes in the KV store after a concurrent GetResourceID)
- IDs are marked as reserved even if they have been released (if a GetResourceID writes in the KV Store after a concurrent FreeResourceID)
This was uncovered by BBSim validating the resource IDs used in the flows.
The OpenOLT Adapter uses two different lock when acquiring and releasing resources. Because of this a race condition exists between GetResourceID and FreeResouceId, allowing two possible failure cases: IDs are marked as available even if they're not (if a FreeResourceID writes in the KV store after a concurrent GetResourceID) IDs are marked as reserved even if they have been released (if a GetResourceID writes in the KV Store after a concurrent FreeResourceID) This was uncovered by BBSim validating the resource IDs used in the flows.
-
Story Points:5
-
Epic Link:
# | Subject | Branch | Project | Status | CR | V |
---|---|---|---|---|---|---|
23553,5 | [VOL-3930] Using a shared lock for Resource acquisition and release | master | voltha-lib-go | Status: MERGED | +2 | +1 |
23554,6 | [VOL-3930] Using a shared lock for Resource acquisition and release | master | voltha-openolt-adapter | Status: MERGED | +2 | +1 |
23567,4 | [VOL-3930] Upgrading to latest voltha-lib-go | master | voltha-openonu-adapter-go | Status: MERGED | +2 | +1 |