PMs are missing because OMCI processor has not started before PM FSM.
Wait for OMCI processor in PM module to start before starting PM FSM.

Change-Id: I10707d8626f1c11f97946307fa7343dcab7b4fb5
diff --git a/internal/pkg/core/device_handler.go b/internal/pkg/core/device_handler.go
index 6465a0c..03b6ab3 100755
--- a/internal/pkg/core/device_handler.go
+++ b/internal/pkg/core/device_handler.go
@@ -2382,8 +2382,11 @@
 	_ = dh.ReasonUpdate(ctx, cmn.DrInitialMibDownloaded, !dh.IsReconciling() || dh.IsReconcilingReasonUpdate())
 
 	if !dh.GetCollectorIsRunning() {
+		var waitForOmciProcessor sync.WaitGroup
+		waitForOmciProcessor.Add(1)
 		// Start PM collector routine
-		go dh.StartCollector(ctx)
+		go dh.StartCollector(ctx, &waitForOmciProcessor)
+		waitForOmciProcessor.Wait()
 	}
 	if !dh.GetAlarmManagerIsRunning(ctx) {
 		go dh.StartAlarmManager(ctx)
@@ -3702,11 +3705,11 @@
 }
 
 // nolint: gocyclo
-func (dh *deviceHandler) StartCollector(ctx context.Context) {
+func (dh *deviceHandler) StartCollector(ctx context.Context, waitForOmciProcessor *sync.WaitGroup) {
 	logger.Debugw(ctx, "startingCollector", log.Fields{"device-id": dh.device.Id})
 
 	// Start routine to process OMCI GET Responses
-	go dh.pOnuMetricsMgr.ProcessOmciMessages(ctx)
+	go dh.pOnuMetricsMgr.ProcessOmciMessages(ctx, waitForOmciProcessor)
 	// Create Extended Frame PM ME
 	go dh.pOnuMetricsMgr.CreateEthernetFrameExtendedPMME(ctx)
 	// Initialize the next metric collection time.