Beta惊魂记

来源:互联网 发布:java线程池的使用场景 编辑:程序博客网 时间:2024/04/29 00:07
    这几日,代码已修改的差不多,本以为写写文 档,改改给用户的message就可以安安心心的进beta了。没想到问题就在最后一天发生了。
    本以run了近7天都没有问题远程API库,忽然在最后一天报出了内存不足的消息。看看系统内存才用了200多M,差不多是那台机器内存的十分之一,而我们的程序也才用了几兆,很是纳闷。把任务管理器里的所有关于内存的信息全打开,没想到这一看不得了,我们的程序占了2G的虚拟内存,怪不得呢,内存地址是有,但是我们程序的虚拟内存全用光了。
    因为没有使用直接申请虚拟内存的API,问题就落在仅有的一两个new函数上了。郁闷的是老大刚在前一天锁定了代码,唉,撞枪口上了。按照规矩,review代码,这一review,又出麻烦了,居然找到了有内存泄露隐患的代码,想当初这小段代码是为了分类出错信息,增加友好性特意加的,没想到居然带来了这种隐患,唉,代码不能随便改呀。极度丢脸之下,发现这个隐患和已经发现的问题没有关系。正常情况加不会有内存泄露,看来这个问题还不是我的代码写错这么简单。可是beta大限在即,为了不拖后腿,采用了保险的方法,放弃了动态分配内存,直接改成自动变量,问题解决。等到进入beta以后,再来找原因。
   经过这一劫,心想古人云,大难不死,必有后福,结果这句古话没应验,应验了另一句,祸不单行。眼看负责super lab的QA DD已经去搞环境了,QA MM发现error message错了一大片,一听到这个消息,正是不敢相信呀,自己仔细一看,心里顿时拔凉拔凉的。说到这error message不得不说我们的HIE大伯,这位大伯远道从美国赶来,支援我们建设。态度可嘉,就是效率没有他的笑声那么爽朗。error message的review可谓是拉锯战呀,没想到最后关头,本以在前一轮改过ok的一些消息,有会到了原来的状态,肯定是我们交互当中版本弄错了,我也是斗争经验不足,一个不小心,忘了回头看了,中招落马。还好只是低级错误,改好测试重新上传,重出build。不过苦了各位QA,浪费了不少的测试时间,还好赶上了super lab。QA DD也得晚上过来重新部署,不能回家陪MM了。
    晚上加班,等着QA DD把我们的产品部署到super lab环境中run起来。其他几个人随便聊天,一片歌舞升平。产品差不多部署好了,老大有重新锁上了代码,骑一个小时的车回家了。我也收拾东西,准备闪人,心想今天真是充实的一天呀。就在这时,悲剧再次发生了,QA DD发现一类操作全失败了,第一个反应就是,歇,代码改错了。立马准备打电话,把还在车上的老大弄回来解锁代码。可仔细一看,修改的代码和这块没关系呀,忍下打电话的冲动。和QA DD一起排查起来,心里盘算着再不打,老大说不定就上床了,到时候再过来,嘿嘿。  结果,结果,居然是AC引起了,虚惊一场,还好没冲动。 骑车回家,在车上又想,今天可正是充实的一天呀。