玄学
所谓玄学bug大多是不易触发,或者复现非常困难的bug,而这样的bug大多隐藏在硬件上或者无法捕获的外界环境上。给大家说说那些曾经的“玄学”bug:
17年英特尔公布了一个cpu内的bug,其实这个bug早就出现了,一直有开发者说某些程序在打开超线程后不稳定,但是一直无法准确找到触发条件,直到这一消息被确认:英特尔第六代和第七代 Core 处理器(桌面、移动和服务器版的 Skylake/Kaby Lake 和部分奔腾处理器)在启用超线程时发现存在一个处理器/微码缺陷。该缺陷会导致无法预料的操作系统行为,如应用程序崩溃或数据丢失。应对的权宜之计是关闭超线程,或更新处理器微码。该缺陷不只是影响 Debian 操作系统,可能会影响所有使用上述处理器的操作系统。这汇总bug一般不会轻易捕获,即使捕获了也不太可能轻易去确认。
还有一个“玄学”bug,cpu被宇宙射线射掉了寄存器的值、宇宙射线击穿内存,导致电位翻转等。在强太阳风暴期间都有多颗卫星由于单粒子效应而出现异常和故障,例如,在2003年,太阳质子事件曾经导致地球同步轨道卫星Inmarsat中的一颗卫星由于CPU瘫痪而失效,美国SOHO、ACE、Wind、Polar、GOES等科学卫星数据丢失或损坏。这一情况在医院、研究院、航天领域发现比较多。所以呢有时候服务器宕机、数据乱码都有可能是宇宙射线在搞鬼,但是这种bug说出来一般没人会相信,大多数只能默默认栽了。
还有一个环境导致bug,严格来说并不算是bug,但也挺“玄学”了,这就是美国通用汽车“香草冰淇淋”bug。美国通用汽车公司收到一封客户抱怨信,我们家有一个传统的习惯,就是我们每天在吃完晚餐后,都会以冰淇淋来当我们的饭后甜点。由于冰淇淋的口味很多,所以我们家每天在饭后才投票决定要吃哪一种口味,等大家决定后我就开车去买。但自从最近我买了一部新的庞帝雅克后,在我去买冰淇淋的这段路程问题就发生了。每当我买的冰淇淋是香草口味时,我从店里出来车子就发不动。但如果我买的是其他的口味,车子发动就顺得很。为什么这部庞帝雅克当我买了香草冰淇淋它就发不动,而我不管什么时候买其它口味的冰淇淋,它就可以发动?为什么?事后证明原因是出在这家冰淇淋店的内部设置的问题。因为,香草冰淇淋是所有冰淇淋口味中最畅销的口味,店家为了让顾客每次都能很快的取拿,将香草口味特别分开陈列在单独的冰柜,并将冰柜放置在店的前端;至于其它口味则放置在距离收银台较远的后端。现在,工程师所要知道的疑问是,为什么这部车会因为从熄火到重新激活的时间较短时就会发不动?原因很清楚,绝对不是因为香草冰淇淋的关系,答案应该是“蒸气锁”。因为当这位仁兄买其它口味时,由于时间较久,引擎有足够的时间散热,重新发动时就没有太大的问题。但是买香草口味时,由于花的时间较短,引擎太热以至于还无法让“ 蒸气琐 ”有足够的散热时间。
(图片来自网络)
所以,所谓的“玄学”bug不过是还没找到原因罢了,运行环境复杂、用户硬件参差不齐都会导致各种所谓的“玄学”bug。但是我们要相信,所有的bug都是有因果的,只不过有些还没发现而已!
https://mp.weixin.qq.com/s/pwHbvvOC3pcoyHWzWt_7EA
相关阅读
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow也欢迎大家转载本篇文章。分享知识,造福人民,
首先如果你用的是vc6的话: 1。按F5运行你的程序 2。在出错时,选择“重试” 3。按ALT+7调出“调用栈”窗口 4。双击从上往下的最
一、Debug视图调试中最常用的窗口是: 窗口 说明 Debug窗口 主要显示当前线程方法调用栈, 以及代码行数(有调试信息的代码) 断
1.介绍 Laravel Debugbar 在 Laravel 5 中集成了 PHP DebugBar,用于显示调试及错误信息以方便开发。该扩展包包含了一个 ServicePr
ajaxfileupload.js目前功能最全版本(多文件、异常处理
前言 之前项目中要进行文件的ajax上传时习惯性的用ajaxfileupload.js这个插件,当时遇到一个问题,使用on绑定change事件上传一次后,