[VOL-4479] openonu panic in periodic-voltha-multi-uni-multiple-olts-test-bbsim-2.8 +
Onu adapter reconcilement may stuck on VLAN processing, especially in TT traffic scenarios

Signed-off-by: mpagenko <michael.pagenkopf@adtran.com>
Change-Id: I806f97c85e09bc2c741e40569a67ab3ce21300ab
diff --git a/internal/pkg/onuadaptercore/onu_metrics_manager.go b/internal/pkg/onuadaptercore/onu_metrics_manager.go
index c33fb99..ab3000c 100644
--- a/internal/pkg/onuadaptercore/onu_metrics_manager.go
+++ b/internal/pkg/onuadaptercore/onu_metrics_manager.go
@@ -2959,9 +2959,11 @@
 func (mm *onuMetricsManager) getEthernetFrameExtendedMETypeFromKvStore(ctx context.Context) (bool, error) {
 	// Check if the data is already available in KV store, if yes, do not send the request for get me.
 	var data me.ClassID
+	mm.pDeviceHandler.pOnuOmciDevice.mutexPersOnuConfig.RLock()
 	key := fmt.Sprintf("%s/%s/%s", mm.pDeviceHandler.pOnuOmciDevice.sOnuPersistentData.PersVendorID,
 		mm.pDeviceHandler.pOnuOmciDevice.sOnuPersistentData.PersEquipmentID,
 		mm.pDeviceHandler.pOnuOmciDevice.sOnuPersistentData.PersActiveSwVersion)
+	mm.pDeviceHandler.pOnuOmciDevice.mutexPersOnuConfig.RUnlock()
 	Value, err := mm.extPmKvStore.Get(ctx, key)
 	if err == nil {
 		if Value != nil {
@@ -3059,9 +3061,11 @@
 }
 
 func (mm *onuMetricsManager) putExtPmMeKvStore(ctx context.Context) {
+	mm.pDeviceHandler.pOnuOmciDevice.mutexPersOnuConfig.RLock()
 	key := fmt.Sprintf("%s/%s/%s", mm.pDeviceHandler.pOnuOmciDevice.sOnuPersistentData.PersVendorID,
 		mm.pDeviceHandler.pOnuOmciDevice.sOnuPersistentData.PersEquipmentID,
 		mm.pDeviceHandler.pOnuOmciDevice.sOnuPersistentData.PersActiveSwVersion)
+	mm.pDeviceHandler.pOnuOmciDevice.mutexPersOnuConfig.RUnlock()
 	// check if we get the supported type me for ethernet frame extended pm class id
 	if mm.supportedEthernetFrameExtendedPMClass == 0 {
 		logger.Error(ctx, "unable-to-get-any-supported-extended-pm-me-class")