Check processOmciMessages and generateTicks routines are active before
closing respective channels (stopProcessingOmciResponses and stopTicks).
Change-Id: Iaaab422f175f634d36d3ec095b8802c3c1c2634e
diff --git a/internal/pkg/onuadaptercore/device_handler.go b/internal/pkg/onuadaptercore/device_handler.go
index 0f067d0..ac04031 100644
--- a/internal/pkg/onuadaptercore/device_handler.go
+++ b/internal/pkg/onuadaptercore/device_handler.go
@@ -1810,6 +1810,14 @@
}
_ = dh.deviceReasonUpdate(ctx, drInitialMibDownloaded, !dh.isReconciling())
+ if !dh.getCollectorIsRunning() {
+ // Start PM collector routine
+ go dh.startCollector(ctx)
+ }
+ if !dh.getAlarmManagerIsRunning(ctx) {
+ go dh.startAlarmManager(ctx)
+ }
+
// Initialize classical L2 PM Interval Counters
if err := dh.pOnuMetricsMgr.pAdaptFsm.pFsm.Event(l2PmEventInit); err != nil {
// There is no way we should be landing here, but if we do then
@@ -2961,9 +2969,12 @@
logger.Errorw(ctx, "metrics manager fsm not initialized", log.Fields{"device-id": dh.deviceID})
}
}()
-
- dh.pOnuMetricsMgr.stopProcessingOmciResponses <- true // Stop the OMCI GET response processing routine
- dh.pOnuMetricsMgr.stopTicks <- true
+ if dh.pOnuMetricsMgr.getOmciProcessingStatus() {
+ dh.pOnuMetricsMgr.stopProcessingOmciResponses <- true // Stop the OMCI GET response processing routine
+ }
+ if dh.pOnuMetricsMgr.getTickGenerationStatus() {
+ dh.pOnuMetricsMgr.stopTicks <- true
+ }
return
case <-time.After(time.Duration(FrequencyGranularity) * time.Second): // Check every FrequencyGranularity to see if it is time for collecting metrics