February 22, 2017

近期遇到的奇葩Bug之解决从入门到懵逼

文• Mark

此事发生在2016年10月,后与朋友分享过,朋友希望能写下来分享。因当时较忙,暂未整理,一直拖到现在。清晨早醒,整理之,以飨读者。

所谓Bug即软件中存在的小错误导致异常。奇葩Bug则是那些遇到时让人无所适从,解决时狂挠头发而不知所以,解决后又能仰天大笑,悲喜交加。

以前知乎上搜到过一个朋友分享硬件开发中,把脚放在桌子上,Bug出现,把脚拿下来的就没事的奇葩Bug分享,当时也只是开心一笑。没想到,最近,我与我的同事们也遇到了一个奇葩Bug。

此Bug,时间和空间因素都是诱因,但小勿入。

硬件固件和App版本初发布,热心用户反馈无法同步数据,在此再次感谢🙏 这些用户。但我们相关开发同事都清楚,数据同步部分都没有动过,怎么之前是好的,现在突然有问题了? Review版本修改,数据同步模块也没有做过任何修改,怪!但这种问题绝不能忍,遂与同事两人尝试模拟复现,这也是这次奇葩Bug之旅的主角。

历程🐳🐳🐳

第一天🐢

复测一天均为复现,查找log也并无异常,茫然一天即将过去,晚上还在思考问题可能出在哪,不得解,第二天继续吧。此时下班时,测试设备一直开着…说实话是忘关了。

第二天🦀️

早晨上班,一个同事说不能同步了,但再次尝试开启新纪录又可以同步数据,只好继续留意观察。晩上下班我们有意把测试设备保持昨晩的状态,跑一晚明天再看是不是还能复现

第三天🐚

早晨上班,还是这个同事,突然触电般跳起来说:擦,不能数据同步了,什么鬼?!👹 顿时神经紧绷,召集硬件同事保持信息同步,但硬件同事也百思不得姐。

会不会是因为模拟跑一晚,距离很长,点数太多就会复现?但测一次要一晚,太久不能忍😁,机智的我们🤓 🤔 打算改造 它,在保证硬件性能可以Hold住的情况下, 提高数据采集频率10倍,提高速度10倍, 保证每两次数据采集距离相同,点数相同,但 所花的时间缩小十倍,以快速排除上述怀疑。

改造完成,但Bug并未复现.

茫然...🤕 🤒 🤥

下午

硬件同事告诉我们,他好像发现了什么,室外貌似可以模拟复现。赶快试一下,果然。但晚上室内复现的那两次又如何解释呢?激动不已,内取满面!

那么,现在这个Bug不仅和时间维度相关, 还和空间维度相关了!😓 🔯 ⏱

一口老血 💣 💣 💣

室内和室外的差别就是室外可以接收到并处理GPS信号,看看GPS处理模块在搞什么鬼, 果然.有个地方出问题了。

这也解释了为什么这个Bug只在10月出现👩🏼‍🚒

那两个晚上测试出现的结果如何解释呢?🌶

👉 办公室白天人多,干扰多,GPS信号飘不进来,模拟测试设备接收不到GPS信号,所以Bug不出现!
👉 办公室晚上人少,干扰少,GPS信号可以飘进来,模拟测试设备可以接收到GPS信号,Bug出现!

Bug亮点🌋🌋🌋

  • 室内夜深人静时出现
  • 只在10月出现
  • 空旷室外可出现

搞定!又可以出去浪啦!🏔🗽⛲️🗼🗻🏜

感受💡

  • 硬件相关要注意其物理环境因素
  • 感谢勇于面对和解决问题的同事,向你们致敬!
  • 鄙视遇到问题退缩没有担当的菜鸡
  • 时间和空间维度因素都可能是诱因
  • 测试很重要,感谢测试同事

总有一些曾经让你感到痛苦的事情,会在若干时间后,笑着讲出来!

文笔不好,多指正!

ENJOY~