记一次代码提交导致线上瘫痪事件

今天是我在公司实习的第29天,星期二,北京久违的蓝天。

早上,有同事在群里发了一条消息,说监控不到线上流量了。我当时看到了,却没怎么放在心上。

直到11点多,我的Leader给我发来消息,说我三周以前在代码库里提交的pr出了问题。这是我才回过神来,意识到可能是我那次提交的代码导致整个服务挂掉了。

Leader给我发来链接,不用看,我清楚地记得那次我只是修改了一行代码,挪了一下位置而已。当时刚到公司,Leader给我说:“你的实习任务就是把这几个模块看懂,并搞定单元测试。”我懵懵懂懂,开始边学习一门新的语言边熟悉业务代码。在看到那一部分时,没有仔细推敲就感觉写的不对,问了旁边的同事,也如是说。于是便在git上创建了一个分支,提交了PR–那也是我第一次如此正式地使用git。过了两天,Leader也没仔review,就合并了分支。我那会儿哪里能想到,三周后的昨天,代码上线后,今天刚上班就查看不到监控了,触发报警系统。

我平生第一次感到如此大的压力。脑子不知道在想什么,手头的工作还没做完。到现在为止,压力最大的时候莫过于三年前的高考可几个月前的求职时期了吧,然而那时候我依然很轻松,因为那些事情发挥不好,影响的只是自己。而这次,影响的是公司的产品。我到现在依然不知道有没有导致宕机,造成了多大的事故,有多少的损失,但肯定不会小。

当时想着,整天只是看代码和写单元测试,多简单的事情呀!但却没意识到:自己连语言层面都没完全学会,怎么就敢提交PR呢?

以后的几点自律:

  • 不得好高骛远,先脚踏实地把基础东西学懂,不要想着这很简单。

  • 写或者review代码时必须仔细,切切实实搞懂每一句的全部作用。

  • 代码提交时,必须经过自己充分测试。

  • 最重要一点,改正自己的心态!不要急于求成表现自我而去做一些自己不懂的事情。

刚刚Leader还安慰我说,犯错正常,后面吸取教训就好,说还好这次core dump的量不是很大,以后大的话就得谨慎了。但我绝不能放松自己,以上几条为自律,切实遵守,严谨执行!

2016年12月27日12:00pm