Bug描述:

某大型系统的一个提供基础数据服务的子系统A进行了一次升级。升级的内容为:优化了失败重传功能,在优化的同时,开发人员发现传输数据的时间戳精度只是精确到了秒,于是顺手把精度改成了1/100秒。在程序上线数小时后,使用A数据的B系统发现少量数据缺失现象,同时监控系统提示产生Error。进过追踪日志,发现丢失的数据在插入内存数据库时失败。进一步分析原因,原来B系统在读取A提供的数据时,用到了时间戳。时间戳的长度变更引起了B系统对其解析的错误,因此入库失败。

比较有效的改进点:

1.提供基础服务的A系统应该对它提供的服务方推送变更通知,进行兼容性测试。

2.提供基础服务的A应该尽量保证暴露数据的稳定性,并进行良好的版本控制。

上面2点说起来很简单,实际上做好很难。如果是异地开发呢?如果A与B属于不同的公司呢?因此,上面类型的bug在现实世界中层出不穷。能够从根源上降低或者杜绝这种缺陷是企业的硬功夫。

一个bug案例分析的更多相关文章

  1. Octopus系列之HttpCustom2.0模板引擎的处理,一个bug的分析

    实现的目标是: 1.实现手机和PC模板请求的区分:使得来自两种不同设备请求的时候,各自路由到不同的目录中去 2.保持只有一个引擎实例对象 最后发现一个bug就是,当我从PC访问时初始化了PC的目录,呈 ...

  2. javascript一个作用域案例分析

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. MySQL 5.7 GTID OOM bug案例分析 --大量压测后主从不同步

    转载自:http://www.sohu.com/a/231766385_487483 MySQL 5.7是十年内最为经典的版本,这个观点区区已经表示过很多次.然而,经典也是由不断地迭代所打造的传奇.5 ...

  4. Lock+Condition 相对于 wait+notify 的一个优势案例分析

    问题的描述 启动3个线程打印递增的数字, 线程1先打印1,2,3,4,5, 然后是线程2打印6,7,8,9,10, 然后是线程3打印11,12,13,14,15. 接着再由线程1打印16,17,18, ...

  5. 编写优秀Bug报告的艺术及案例分析

    编写优秀Bug报告的艺术及案例分析 ---Rex Black原著<Fine art of writing a good bug report > ---Kiki翻译于2005/5/28 前 ...

  6. 一个MySQL 5.7 分区表性能下降的案例分析

    告知MySQL5.7.18的使用者分区表使用中存在的陷阱,避免在该版本上继续踩坑.同时通过对源码的讲解,升级MySQL5.7.18时分区表性能下降的根本原因,向MySQL源码爱好者展示分区表实现中锁的 ...

  7. (转)一个MySQL 5.7 分区表性能下降的案例分析

    一个MySQL 5.7 分区表性能下降的案例分析 原文:http://www.talkwithtrend.com/Article/216803 前言 希望通过本文,使MySQL5.7.18的使用者知晓 ...

  8. 对Unity一个Shader编译Bug的分析(Unrecognized sampler 'samplerunity_lightmap)

    写在前面 Unity的用户量越来越大,越来越有钱,这几年摊子也铺的越来越大,所以各个版本总是有很多Bug.对于一些Bug官方在ReleaseNote里的说明是很不详细的,而对于一些渲染相关的Bug,有 ...

  9. 一个导致MGR数据混乱Bug的分析和修复

    1.背景 MGR是个好东西,因为他从本质上解决了数据不一致的问题.不光是解决了问题,而且出自名门正派(Oracle的MySQL团队),对品质和后续的维护,我们是可以期待的. 但是在调研的过程中,发现有 ...

随机推荐

  1. forfiles命令批量删除N天前文件

    在整理手上几台SQL SERVER 2000的数据库备份时,一方面为了方便快速还原数据库,另外一方面为了备份冗余.备份方式统一(先备份到本地,然后收上磁带),将以前通过Symantec Backup ...

  2. cocos2d-x之value

    bool HelloWorld::init() { if ( !Layer::init() ) { return false; } Size visibleSize = Director::getIn ...

  3. php基本语法

    <?phpecho "hello test01";$var ="PHP";echo "$var";echo "<br ...

  4. Linux安装SmartSVN及破解

    转载自:linux 下svn图形客户端smartsvn 安装 一.准备         smartsvn需要java支持,首先请确认机器上有没有安装java 另外还请确认环境变量里有没有JAVA_HO ...

  5. POj3104 Drying(二分)

    Drying Time Limit: 2000MS Memory Limit: 65536K Description It is very hard to wash and especially to ...

  6. FIR数据广播结构-提高时钟速率

    直接型的信号流图 采用转置得到广播结构的信号流图 对于一个常系数四阶的FIR滤波器 直接型的RT L结构如下: 转置后的RTL结构

  7. uva 699 the falling leaves——yhx

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAA3QAAAMsCAIAAACTL3d2AAAgAElEQVR4nOx9y7GuPA4tKRADk/92T8 ...

  8. GoLang 的 daemonize 实现

    func daemonize(cmd string, args []string, pipe io.WriteCloser) error { pid, _, sysErr := syscall.Raw ...

  9. 给定一个整数实现奇偶bit位互换

    1.分别取出所有奇数bit位和偶数bit位 0x55555555(对应二进制奇数bit位为1,偶数bit位全为0)&num 0xaaaaaaaa(对应二进制即偶数bit位为1,奇数bit位全为 ...

  10. BZOJ 1500 维修数列【Splay】

    注意:1,内存限制,所以需要回收删除的点 2,当前节点的左连续区间和最大值=max(左子树的左连续区间和最大值,左子树的总和+当节点的值+max(右子树的左连续区间和最大值,0)):右连续区间和最大值 ...