[VOL-4548] openonuAdapterGo - memory leak seen in long term tests
Change-Id: Ie3eb2048cebf8bf8b2f2a99ccd927d462000223a
diff --git a/internal/pkg/mib/mib_sync.go b/internal/pkg/mib/mib_sync.go
index d3f2712..5222b8b 100755
--- a/internal/pkg/mib/mib_sync.go
+++ b/internal/pkg/mib/mib_sync.go
@@ -488,6 +488,10 @@
switch message.Type {
case cmn.TestMsg:
msg, _ := message.Data.(cmn.TestMessage)
+ if msg.TestMessageVal == cmn.AbortMessageProcessing {
+ logger.Debugw(ctx, "MibSync Msg abort ProcessMsg", log.Fields{"for device-id": oo.deviceID})
+ break loop
+ }
oo.handleTestMsg(ctx, msg)
case cmn.OMCI:
msg, _ := message.Data.(cmn.OmciMessage)
@@ -1207,8 +1211,16 @@
}
//the MibSync FSM might be active all the ONU-active time,
// hence it must be stopped unconditionally
- pMibUlFsm := oo.PMibUploadFsm.PFsm
+ pMibUlFsm := oo.PMibUploadFsm
if pMibUlFsm != nil {
- _ = pMibUlFsm.Event(UlEvStop)
+ // abort running message processing
+ fsmAbortMsg := cmn.Message{
+ Type: cmn.TestMsg,
+ Data: cmn.TestMessage{
+ TestMessageVal: cmn.AbortMessageProcessing,
+ },
+ }
+ pMibUlFsm.CommChan <- fsmAbortMsg
+ _ = pMibUlFsm.PFsm.Event(UlEvStop)
}
}