抓虫记之八:每天崩溃的服务器

并不是所有的BUG,都会让你看到现象的。杀人案看到尸体,总还算有一个线索。如果最终就是消失了,那才难以发现。

程序中有几类程序就是没有界面的。Window的Service,或者是自己做的应用程序服务器AppServer。有一个案例就和这个AppServer有关。原来,产品部门把系统部署给客户试用之后发现,服务器每隔两天就当机,重启之后,又好了。但两天后肯定出问题。

项目组的人试了很多方法,都没有找出原因来。因为正常的客户端操作都是正常的。出错的时候,也没有甚么不正常的操作。这件事情困扰了项目组很长时间。以至于每个人都时时刻刻的关注着服务器的状态。想看看服务器到底甚么时候当掉的。

一位同事就是这样坚持在线测试着。在一天晚上,回到家中后,睡觉之前,上线看看,服务器还是好好的,突然发现,过了12点,服务器就突然当掉了!

这是一个巨大的发现。12点是一个很特殊的时间,很可能这个时候做了甚么定时器的操作。赶紧让研发人员看代码,果然如此,原来在12点的时候,有一个定时器启动,做了一些操作,但和当前的系统发生了死锁。具体的原因,主要还是没考虑环境的初始化。

回顾这个BUG的发现和修改,从逻辑和系统来分析,发现,也应该可以分析到定时器。但是,有了这个经验之后,我们以后就可以更加肯定的相信这个分析。因为对于一个服务器来说,对他的操作者,就是客户端和定时器。

这是一个教训,但也是一次宝贵的经历。

作者:xiammy 发表于2011-7-16 20:48:21 原文链接
阅读:715 评论:2 查看评论

你可能感兴趣的:(服务器)