[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")