当程序遇到“玄学”bug
所谓玄学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相关推荐
- 在TFS中通过程序动态创建Bug并感知Bug解决状态
为便于跟踪问题解决情况,预警引擎产生的比较严重的预警日志,需要在TFS中登记Bug,通过TFS的状态流转,利用TFS Bug的Web挂钩功能,动态感知Bug解决状态,从而跟踪预警问题的解决状态, 整体 ...
- 【有三吐槽】程序员改BUG的六重境界,你,第几重了?
文章首发于微信公众号<有三AI> [有三吐槽]程序员改BUG的六重境界,你,第几重了? 作为一个程序员,我们也有丰富多彩的bug人生啊,咱们又开新专栏了(实在是有感于最近大家问我的问题), ...
- 怎么查电脑系统版本_程序员的bug解决不了怎么办?
一开始公司新来的新手程序员,最近已经开始了他们的工作,部门的项目经理,为了让他们快速上手,让他们对之前的系统进行BUG修复工作,我认为,这种思路对新手程序员来说,是很有益的,通过查找解决BUG,来熟悉 ...
- 发现Java程序中的Bug
昨天在CSDN上阅读 "Java中十个常见的违规编码"这篇文章时,无意中找到了3个 "发现Java程序中的Bug"工具. 文章地址:http://www.csd ...
- Patrick Wyatt:代码没问题 程序却有bug?
摘要:相信每个程序员都遇到过"不可能的bug",代码没有任何问题却出错了!问题肯定是出在操作系统上,或者是工具,甚至是因为计算机硬件的问题?!?当然,魔兽之父也不例外,他在本文中分 ...
- 程序员修复bug的吐血过程,太形象了
web前端教程 用大白话,来讲编程 当别人向程序员报一个bug,直到程序员把bug完整的修复好,整个过程是一个怎样的经历? 下面用一个维修工的故事类比一下,相信会很多程序员都会感到似曾相似! 假如你是 ...
- 漫画:程序员调bug的真实写照233
程序员调 Bug 的样子,非常真实~ ↓↓↓ (动图原作者是 @我的邻居全是猫 ) 网友评论: @中国有圣人:哈哈哈--太形象了!最后干脆撂挑子不干了!破罐破摔了! @她叫小明:所以发明回溯这个超能力 ...
- 程序猿解决BUG之总结
今天看到一遍博文(老程序员解Bug的通用办法),提到程序猿解决BUG的思路和方法,结合自己的经验总结一些:对待BUG,广大程序猿态度不同,解决方法也不同,各人有各人的法宝,但总结一下,希望对新入行的同 ...
- 老程序员解Bug的通用办法
程序员在很多人的印象里是一份严(ku)谨(bi)的职业,也是一个被搞怪吐槽乐此不疲的职业,程序员们面对复杂的代码敲打电脑时连眉头都不会皱一下,但是有一个词却是他们痛苦的根源,它就是Bug. 记得刚毕业 ...
最新文章
- 用navicate 连接本地数据库提示用户名/口令无效
- 提示找不到include/common.h 提示No package 'minigui' found
- Masonry自动布局详解一:基本用法
- Attempt to execute SCRIPT plot as a function?
- centos查看mysql信息_CentOS查看和修改MySQL字符集
- 针对C64x+的一些优化经验
- php中多选提交如何获取,php中checkbox值获取,显示,多选值获取
- 蓝牙要抢ZigBee的地盘?低功耗广域网络笑了
- JavaCore HeapDump
- Mac adobe PS、AI、PR、AN安装包
- 出现电脑蓝屏代码0x000000ed怎么解决
- python使用mq-fw包
- (附源码)计算机毕业设计SSM原创网络文学管理系统
- python房价预测_python房价预测
- Linux-系统管理16-磁盘配额
- 鼠标左键一点就自动删除问题
- linux内核启动过程和启动第一个应用程序
- vuex 设计思路和实现
- 论文查重是怎么查的?有什么规定?
- Unknown initial character set index '255' received from server. Initial client character 解决方法
热门文章
- Angular 通过管道pipe,转换后台字典数据
- php id如何设置主键自增,phpmyadmin设置id主键自增报错怎么办_数据库
- 手撕VGG卷积神经网络-pytorch-详细注释版(可以直接替换自己数据集)-直接放置自己的数据集就能直接跑。跑的代码有问题的可以在评论区指出,看到了会回复。训练代码和预测代码均有。
- WingIDE注册破解方法
- Qt 控制 Windows 系统触摸键盘显示隐藏,自定义添加可编辑控件
- 数字电视机顶盒的接收过程
- 3大全球性趋势宣告品牌长期主义时代已来,年轻一代消费者更追求感性价值 | 美通社头条...
- 基于openssl工具完成自建CA以及为server,client颁发证书
- vue,v-html如何识别\n换行符
- Linux介绍与操作系统安装