新聞資訊
了解故障案例及產(chǎn)品資訊
新聞資訊News
相關(guān)產(chǎn)品Related Product
問題描述
OSN3500網(wǎng)元的SSN2EGS2單板上報"COMMUN_FAIL"告警,業(yè)務(wù)中斷。檢查發(fā)現(xiàn)是該SSN2EGS2單板異常復(fù)位導(dǎo)致上報"COMMUN_FAIL"告警。單板復(fù)位后業(yè)務(wù)恢復(fù),之后未出現(xiàn)"COMMUN_FAIL"告警和單板異常復(fù)位。
主機(jī)版本為5.21.12.42
EGS2單板版本為2.14
告警信息
COMMUN_FAIL
處理過程
升級SSN2EGS2單板到R6C02B014(單板軟件版本3.15)版本根本解決。
根因
根據(jù)現(xiàn)場反饋的情況,此問題是業(yè)務(wù)正常運(yùn)行中,沒有進(jìn)行任何操作的情況下,突然出現(xiàn)單板復(fù)位業(yè)務(wù)中斷的情況。
分析黑匣子數(shù)據(jù),發(fā)現(xiàn)在處理Hello報文時,前兩次處理成功,到了第三次處理的時候,出現(xiàn)釋放內(nèi)存失敗異常,導(dǎo)致單板復(fù)位。
log日志信息:
bb1.log                               2008-10-14 20:19:33          D:/3500prj/public/HardDrv/NP3454Drv/NP3454PktMng.cpp,813, Hardware operation failed  ,(null)
處理Hello報文錯誤,需要釋放內(nèi)存空間。          bb1.log                               2008-10-14 20:19:33          Error:0x70008, freeAddr=0x1cc8070, BufSize=0x90, dmm_intf.cpp, line:1439, , 
 01cc80f0: 00000000 00000000 64656164 64656164
  bb1.log                               2008-10-14 20:19:33          Reset: File_NP3454PktMng.cpp, Line_859, Type_0xf0000010.
釋放報文內(nèi)存錯誤,內(nèi)存釋放失敗
  bb1.log                               2008-10-14 20:19:33          Error:0x70008, freeAddr=0x1cc7380, BufSize=0x90, NP3454PktMng.cp, line:669, , 
 01cc7400: 00000000 04001200 0180c200 00000000
申請報文內(nèi)存錯誤,申請內(nèi)存失敗   
bb1.log                               2008-10-14 20:19:33          Error:0x70008, freeAddr=0x1cc7380, BufSize=0x90, dmm_intf.cpp, line:1439, , 
 01cc7400: 00000000 04001200 0180c200 00000000
分析復(fù)位記錄,是由于內(nèi)存申請失敗或是內(nèi)存寫越界導(dǎo)致。
通過分析該段代碼發(fā)現(xiàn):
在處理協(xié)議報文時,首先指針未初始化;其次由于內(nèi)存泄漏,在用完片分和非片分后,申請失敗,但是只記了level3黑匣子,未返回錯或者直接重起;最后是在發(fā)送失敗判斷釋放內(nèi)存時筆誤,導(dǎo)致內(nèi)存沒有釋放;
由于內(nèi)存泄漏,用完后別的任務(wù)申請失敗就會重起;而如果pSendMsgBuf是一個沒有初始化,也有沒有獲得空間的指針,在下面釋放也有可能導(dǎo)致重復(fù)釋放而重起;
因此,問題原因?yàn)椋河捎谏暾垉?nèi)存之后,在特殊的場景下沒有釋放內(nèi)存,導(dǎo)致內(nèi)存泄露,單板復(fù)位。內(nèi)存泄露后的累計(jì)是一個長期的過程,所以復(fù)位單板之后問題消失。該問題為單板質(zhì)量問題。