[VOL-5448] :Onu adapter crash fix when processing pon uni config fsm
Change-Id: I1535fa2ef45491901996133870918c424eb7e379
Signed-off-by: balaji.nagarajan <balaji.nagarajan@radisys.com>
diff --git a/internal/pkg/devdb/onu_device_db.go b/internal/pkg/devdb/onu_device_db.go
index f8e99cb..d299789 100755
--- a/internal/pkg/devdb/onu_device_db.go
+++ b/internal/pkg/devdb/onu_device_db.go
@@ -145,12 +145,13 @@
// GetMe returns an ME instance from internal ONU DB
func (OnuDeviceDB *OnuDeviceDB) GetMe(meClassID me.ClassID, meEntityID uint16) me.AttributeValueMap {
OnuDeviceDB.CommonMeDb.MeDbLock.RLock()
- defer OnuDeviceDB.CommonMeDb.MeDbLock.RUnlock()
// Check in the common MeDb
if meAttributes, present := OnuDeviceDB.CommonMeDb.MeDb[meClassID][meEntityID]; present {
+ OnuDeviceDB.CommonMeDb.MeDbLock.RUnlock()
return meAttributes
}
+ OnuDeviceDB.CommonMeDb.MeDbLock.RUnlock()
OnuDeviceDB.OnuSpecificMeDbLock.RLock()
defer OnuDeviceDB.OnuSpecificMeDbLock.RUnlock()
@@ -298,9 +299,10 @@
// DeleteMe deletes an ME instance from internal ONU DB
func (OnuDeviceDB *OnuDeviceDB) DeleteMe(meClassID me.ClassID, meEntityID uint16) {
OnuDeviceDB.CommonMeDb.MeDbLock.Lock()
- defer OnuDeviceDB.CommonMeDb.MeDbLock.Unlock()
+
meDb := OnuDeviceDB.CommonMeDb.MeDb
delete(meDb[meClassID], meEntityID)
+ OnuDeviceDB.CommonMeDb.MeDbLock.Unlock()
OnuDeviceDB.OnuSpecificMeDbLock.Lock()
defer OnuDeviceDB.OnuSpecificMeDbLock.Unlock()