Coredump-Z: 系统容量提升时出现的一种情况

简介

这个也属于软件设计类型的问题。
做容量提升,是说原有软件已经存在很多年(有的可能多达十几,二十几年),经过多年的摸爬滚打,还算稳定。
后续客户要求,将某些功能的容量提升一下,比如:原来系统支持256个vlan,要提高容量,要求支持1024个vlan。
这个时候就很容易碰到各种coredump。

原因-原有数组容量不够

尤其是在大型软件开发,大家都是按照模块划分,导致容量的提升代码修改,非常的繁琐;所以这种提升容量的开发,一般都是采用测试驱动开发。哪里需要改,就改哪里。
原有数组如果容量不够,有没有加越界限制,就会出现coredump;因为,原来只需要填充256个vlan的信息,后续要填充1024个vlan记录。

还有一种情况,就是在打日志时,使用到字符数组,这种容量提升也是容易碰到字符数组越界,尤其是使用不安全的字符操作函数比如:sprintf, strcat,等等

测试驱动的不足

这种测试驱动的容量提升开发,有一个缺点就是,如果测试不能面面俱到,可能导致有些问题只能到客户哪里才能暴漏。切记。所以需要测试的经验充足。

解决

从设计架构的角度去考虑问题的话,这种有可能扩容的功能,最好事先设计好;
但是问题是:这种设计是需要花费更多的时间去,以及协调各个模块的开发;而且不可预知是否一定会有扩容的发生,也就不确定有没有意义;而且随着软件生命周期的进行,开发人员的流动导致某些功能点的知识遗漏。

猜你喜欢

转载自blog.csdn.net/qq_36428903/article/details/125532846