`
javaboy2006
  • 浏览: 183054 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

一次线上故障引发的警示

 
阅读更多
这次引发的线上故障和我有直接关系,现分析一下这次故障产生的原因和经验教训,还请大家引以为戒。

原因分析:
1、在XXX升级包开发过程中,编写伪登陆接口测试用例时走读接口代码发现对接口参数控制不严格(判断参数是否为null)对其重构为更严格参数控制(判断null或空字符串),但未考虑到代码中的潜规则:调用方就是传递空密码字符串,实属好心办了坏事。
2、重构代码后没有仔细进行代码review和测试。

经验教训:
1、代码修改前一定要慎重,确认修改后要进行代码review和测试,保证系统的可用性和稳定性。由于公司注册会员数已经超过2亿,任何一个细微的程序错误都会带来较大影响,2亿的万分之一概率也会影响到2万会员。
2、系统中的一些代码潜规则需要加以注意,避免掉入陷阱。例如前面遇到过一类情况,下表中第2、3种情况通过查看外围系统或核心系统代码可以发现问题,但第4种情况通过查看核心系统代码发现问题后如果凭以往经验修改为正确逻辑会导致执行结果错误,只有通过和外围系统联调才能发现问题。

    外围系统调用代码          核心系统接口代码         执行结果
--――――――――――――――――――――――――――――――――
1      正确                    正确                     正确
2      正确                    错误                     错误
3      错误                    正确                     错误
4      错误                    错误                     正确

希望通过这次事件给自己敲响警钟,尽一切可能降低下半年的故障指数。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics