今晚又上一个版本(为什么是又?作为互联网风格的公司,发版本不是很正常么),自从上次发版本出了小问题之后,今晚的较大改动尤其需要注意。
今天上线是由外部接口变动导致内部策略变动,需要好几方一起协调上线,在发完上线脚本,仔细检查测试之后提交了,没出任何问题;根据常规流程,要在测试环境验证本次的修改是否能正常通过,结果发现流程还是出问题了:之前一直正常的接口在某种数据下肯定出错;测试同事反馈过来之后立马跟进,当时才三点多,本来打算顺利就四点多就发版本开心下班了,然后就在这一步出问题了。看了日志之后发现是调用接口引发的异常,首先看自己的数据是否正常,发现完全正常;启用本地测试用例,发现同样的问题,在此处要提一下,由于自己没认真查看错误异常堆栈信息,导致没能及时定位问题,也是自己经验不够的代价,确定自己这边没问题之后将异常信息发送给接口负责同事,他最开始看了一下也没发现问题,本地调试也是正常通过;一时无法,只能硬着头皮重新打包,再次验证,还是出这种问题。不知不觉时间已经到了7点多,再次将全部异常给同事发过去之后同事发现了一点:接口包有个枚举不对,属于旧版本包,新版已经更改。本地重新打包应用,发布,仍然出问题,之后删除本地包,用maven重新打包,本地测试用例终于正常通过。此时再次尝试打包应用发布到测试环境,还是无效,将包下载下来之后发现接口包版本不对,遂让同事帮忙看看如何打包,此次终于发现问题所在:由于对方之前发布接口包使用了release版本,之后又更改了接口包,但是没有通知其他人删除本地宝更新接口包,导致无法下载最新版本,之后通过手动删除各个环境的本地依赖包,发布验证终于通过!
通过这次版本记录,主要发现自己平时2个不足之处,第一:要仔细阅读程序给出的错误异常堆栈信息,往往能快速定位问题;第二:打包时要注意选用的版本,尤其注意release版本的使用,一旦确认是release,就不要再轻易私自改动,否则会给依赖方造成困扰。
原文:http://www.cnblogs.com/foreverleef/p/5008595.html