嗯,昨天发生的事情就当做2018年的新年礼物好了~事情是这样的:我接手了一个系统,并努力把它做的近乎完美,自动化兼容处理mongo分片,依赖的系统如果不支持分片的操作,就不会执行分片的自动化处理逻辑。系统,在我看来开发的各种功能都已经很好了,并且在实际驻地使用的反馈中,我加强了一些功能,使得系统更加易用。

原本这是我在新公司中,最为满意的一个作品。但是部署上线后发现导致了很严重的问题,驻地直接500报错了。经过检查,发现问题没有出在分片自动检测处理上,而是出在自动检测之前的一个变量上!

我和测试同学一直将注意力集中在分片的检测实现容错,而没想到真正引发问题的是一个变量的引用上。这个变量在旧的依赖的系统中是私有的,而在新版本中是公共的,就是这么一个简单的变量引用,导致了报错!!!

我愚蠢的忘记了旧系统的依赖兼容尝试,自大的沉浸在对这个满意的系统的孤芳自赏中……
这个错误,原本不该发生的,但我却忽略了它。懊悔自责,还真是久违的感觉~

因为我一个人的错误,带给很多人麻烦,从测试到运维都为此忙碌。没有人指责我,老大和同事也安慰我:“我们这高危团队,谁后背还没有几个锅呢~”但丝毫无法减少我内心的难过,我为自己难过。

这个新年礼物非常好,让我知道自己还差得很远,我以为我做的很好了,大错特错,我做的距离完美也差得很远。我考虑的依然不够周全。

虽然问题从发现到解决,运维同学只用了十分钟搞定,但这并不代表问题很小。我的代码出错了,是天大的事情,这一耳光,我记下了~

感谢2018用一个“小故障”教我做人。愧疚懊悔无用,这一年,我要:扎实,沉稳,细心,总结经验,不再犯错。

本文记录我对2018年 UPC 4.0.0 部署上线引发故障的反思。引以为戒,不负所托,不辱使命。

Related Posts: 2018新年礼物 :

avatar