这次引发的线上故障和我有直接关系,现分析一下这次故障产生的原因和经验教训,还请大家引以为戒。
原因分析:
1、在XXX升级包开发过程中,编写伪登陆接口测试用例时走读接口代码发现对接口参数控制不严格(判断参数是否为null)对其重构为更严格参数控制(判断null或空字符串),但未考虑到代码中的潜规则:调用方就是传递空密码字符串,实属好心办了坏事。
2、重构代码后没有仔细进行代码review和测试。
经验教训:
1、代码修改前一定要慎重,确认修改后要进行代码review和测试,保证系统的可用性和稳定性。由于公司注册会员数已经超过2亿,任何一个细微的程序错误都会带来较大影响,2亿的万分之一概率也会影响到2万会员。
2、系统中的一些代码潜规则需要加以注意,避免掉入陷阱。例如前面遇到过一类情况,下表中第2、3种情况通过查看外围系统或核心系统代码可以发现问题,但第4种情况通过查看核心系统代码发现问题后如果凭以往经验修改为正确逻辑会导致执行结果错误,只有通过和外围系统联调才能发现问题。
外围系统调用代码 核心系统接口代码 执行结果
--――――――――――――――――――――――――――――――――
1 正确 正确 正确
2 正确 错误 错误
3 错误 正确 错误
4 错误 错误 正确
希望通过这次事件给自己敲响警钟,尽一切可能降低下半年的故障指数。
分享到:
相关推荐
通过jstack与jmap分析一次线上故障.pdf
线上故障排查方法记录
Java线上故障排查方案 结合实战,超详细Java线上故障排查方案总结,值得收藏
线上故障分析.pdf
线上故障定位分析全套方案
线上故障处理流程.zip
针对线上故障处理的应急方案
Java线上故障排查方案(2).pdf
java线上故障分析-线程dump,堆内存分析
线上故障排查全套路,总有一款适合你线上故障排查全套路,总有一款适合你来自:fredal的博客链接:https://fredal.xin/java-error-c
疫情期间线上教学引发的思考.docx
企业级 Node.js 应用性能监控与线上故障定位解决方案.zip
MySQL线上常见故障剖析.pdf
第一次线上学习心得体会精选.doc
第一次线上学习心得体会参考.doc
JAVA 线上故障排查完整套路,从 CPU、磁盘、内存、网络、GC 一条龙!.docx
全新的企业级 Node.js 应用性能监控与线上故障定位解决方案。 旨在 Node.js 的开源生态工具链上做一些微小的事情,希望能帮助到想使用和正在使用 Node.js 的开发者更好地感知自己的 Node.js 应用状态,来面对性能和...