问题描述
工程师反馈某台Metro1000 V3设备掉电起来后,4槽位ET1单板vctrunk6原先配置tag的属性,标识变为access,导致数据业务不通。
主机版本:5.37.05.12
告警信息
TU_AIS
处理过程
该问题在实验室中能够重现:
1、把ET1单板的vctrunk1的属性从tag改为access,然后存库:dbms-copy-all:drdb,fdb0/fdb1
2、然后再把vctrunk1的属性从access改为tag并且再次存库。
3、把设备掉电起来,发现端口属性变成了access,故障重现。
由于软件缺陷,数据库保存vctrunk端口属性标识时存储失败,如果数据库存在过相关记录则会一直掉电起来后使用其默认值access,如果不存在相关记录则掉电起来后将使用其内存中的默认值tag。
即:如果用户的设置保存到flash数据库,则掉电起来固定为access;如果用户的设置从未保存到flash数据库(包括主动存库和半小时周期存库),则掉电起来固定为tag。
根因
ET1单板vctrunk属性标识在内存中的默认值是tag,在flash数据库中的默认值是access。ET1单板vctrunk属性的内存变量是64字节,但是代码中存库参数却写成了16字节,造成后面的48个字节(包含vctrunk标志)没有成功保存到数据库中,因此flash数据库中的vctrunk属性标志始终为其默认值access。
建议与总结
目前发现所有的M1000 V3设备ET1单板都存在这个问题。如果vctrunk端口属性做过设置后需要注意这个问题,目前还没有版本解决,研发计划今年4季度出版本解决该问题。