美文网首页@IT·互联网程序员
一年半才重现一次的bug

一年半才重现一次的bug

作者: Linux后端研发工程实践 | 来源:发表于2017-04-28 13:03 被阅读123次

bug出现的时间点

  • 2015-10-13 我负责的一个使用c写的业务进程奔溃,使用gdb查看coredump文件发现是在对业务包做反序列化的时候,在序列化库里崩溃了。
  • 当时怀疑是业务包有问题,但也不能排除业务进程踩内存的可能,因为后续这个奔溃也再没出现,且哪个时候排查手段也不多,故没有深入去排查这个bug。
  • 2017-04-27 这个业务奔溃了两次和2015-10-13是一样的堆栈。

进程“死亡现场”

使用gdb细看coredump文件发现是在反序列化解析过程中解析失败然后跳到清理逻辑,在释放一个数组内存的时候引用的了空指针从而导致的奔溃,库代码在释放内存时没做空指针校验。

排查过程

这个时候还是不能完全排除业务进程踩内存导致业务包异常的问题,但是相比2015-10-13日我们已经添加了一个请求和应答稽核数据,这个数据会记录客户端所有的请求和应答数据,通过这个数据稽核查看工具发现对应有问题的业务请求的确是有问题的,那么这时我们可以确认这个bug是由客户端导致的,而不是业务进程踩了内存。

修复问题

  • 修改反序列化库中释放空间的代码,添加上空指针的检查,规避服务端收到问题请求崩溃问题,从而导致业务中断。
  • 把现象和数据反馈给客户端,让客户端去排查问题。

思考

任何系统做大之后,业务数据都会通过很多环节和系统,出现问题很难排查,通常很有必要对业务请求做全路径的监控和记录,这样查问题时才能事半功倍。

相关文章

  • 一年半才重现一次的bug

    bug出现的时间点 2015-10-13 我负责的一个使用c写的业务进程奔溃,使用gdb查看coredump文件发...

  • 记一次bug重现

    已经解决了,不算bug,就是有点浪费时间,先上代码:for (int i = 0; i < articlelist...

  • Bug 级别定义

    一般来讲 bug 报告中,按照 bug类型分、bug 级别分、bug 重现能力分 一、bug 类型分 一般会分为功...

  • Bug解决层次-摘抄

    开一个bug; 查找一些额外的资料如设计文档和历史,确定这是一个问题,然后给出详细的bug重现步骤; 对重现步骤做...

  • 20170714 针对难以重现bug思考

    今天看了老徐的文章《如何重现难以重现的Bug》,里面讲到实际中,当遇到很难复现的bug时,测试人员的处理方式为...

  • 错误积累

    给产品经理测试用的地址错了。 修改新的bug把旧的bug重现了。

  • 程序员水土都不服,就服Bug!

    1、重现Bug的第一步... 2、我改了500个Bug,但是!! 3、当我试图把一个Bug踢给别人 4、测试送来的...

  • [bug报告]nxlog字符集转化导致内存泄漏

    nxlog号称“日志收集神器”。nxlog 2.8社区版存在一个bug,此bug会导致明显的内存泄漏。 重现方法 ...

  • 「深度 干货」如何重现难以重现的 Bug

    微信+17031115530,拉测试微信群交流 *********************************...

  • 【测试工具】游戏视频录制

    游戏测试很多时候会有偶然出现的bug,将一场战斗录制下来,如果中途出现偶然性的bug,视频回放便于bug重现和分析...

网友评论

    本文标题:一年半才重现一次的bug

    本文链接:https://www.haomeiwen.com/subject/webozttx.html