点击上方“Java基基”,选择“设为星标”

做积极的人,而不是积极废人!

每天 14:00 更新文章,每天掉亿点点头发...

源码精品专栏

  • 原创 | Java 2021 超神之路,很肝~

  • 中文详细注释的开源项目

  • RPC 框架 Dubbo 源码解析

  • 网络应用框架 Netty 源码解析

  • 消息中间件 RocketMQ 源码解析

  • 数据库中间件 Sharding-JDBC 和 MyCAT 源码解析

  • 作业调度中间件 Elastic-Job 源码解析

  • 分布式事务中间件 TCC-Transaction 源码解析

  • Eureka 和 Hystrix 源码解析

  • Java 并发源码

来源:网络

  • 整数溢出

  • Windows 98 演示中的蓝屏死机

  • 电子邮件无法发送到 500 英里以外

  • 只有在星期三才会崩溃的系统

  • 当我坐在窗边的时候,内存读写就会失败

  • 摇动游戏手柄的时候,游戏存档就会失败

  • 千年虫 bug


今天我们不深聊技术,我们聊一聊世界历史上,最经典且让人摸不着头脑的著名 bug。

整数溢出

1996 年 6 月 4 日,欧洲空间局(European Space Agency,ESA)发射的亚利安 5 号(Ariane 5)运载火箭在法属圭亚那的库鲁发射场发射后仅 40 秒就爆炸了。这枚火箭经过长达十年的研发,耗资 80 亿美元后进行首飞,但这一 Bug 的结果导致了 3.7 亿美元的损失。

首飞失败的原因是整数溢出,这是计算机编程中一个普遍存在的错误。在本例中,有人试图在 16 位空间中设置 64 位数字。

另外,PayPal 也犯过错。PayPal 意外向某人支付 92 千万亿美元。

当 Chris Reynolds 打开他的 PayPal 电子邮件对账单时,这位宾夕法尼亚州公关主管的账户余额显示为 92,233,720,368,547,800 美元。

在 64 位数字的世界里,这个数字太过庞大,意味着存在编程错误。所幸这一错误很快就被发现,当他再次登录时,他的账户已经归零。

PayPal 表示愿意为 Reynolds 选择的事业捐赠一笔数额不详的资金。

基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://gitee.com/zhijiantianya/ruoyi-vue-pro

  • 视频教程:https://doc.iocoder.cn/video/

Windows 98 演示中的蓝屏死机

BSOD 或蓝屏死机(Blue Screen of Death),是 Windows 系统发生致命系统错误后显示的蓝色错误屏幕。它显示了系统已崩溃,此时操作系统已经处于无法可靠地运行的状态。这是由几个不同问题引起的,例如关键进程意外终止或一般硬件故障。

在 Windows 98 或 Windows 95 中,当系统尝试访问硬盘上的文件 c:\aux\aux 或 c:\con\con 时,就会发生蓝屏死机。

直到 2000 年 3 月 16 日,Microsoft 才发布一个安全更新来解决这个问题。

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://gitee.com/zhijiantianya/yudao-cloud

  • 视频教程:https://doc.iocoder.cn/video/

电子邮件无法发送到 500 英里以外

这是 Bug 界最经典的传奇之一。

我在做校园的邮件系统管理员的时候,有用户向我抱怨说:他们不能发送超过 500 英里距离的 email… 如果你之前没有听过这个故事。如果你就是这个管理员。此刻是否一脸懵逼。补充材料:用户中有位地理统计人员,还添油加醋地制作了一张邮件发送失败地图,地图上显示,她邮件的送达区域半径比 500 英里就多那么一点点:半径内的收件人,全收到了,之外的,全失败了。

请给出你的 debug plan。别说是邮票没贴够。

真相:一次软件升级导致远程服务器超时时间被设为 0。在一个具有典型负载的特定机器上,零超时意味着如果连接时间稍微超过 3 毫秒,服务器就会终止连接。而以光速传播的电信号,在 3 毫秒的时间内所能到达的距离大约是:

0.003 * c (光速) = 558.84719 miles

只有在星期三才会崩溃的系统

这是 Bug 界最经典的传奇之二。

一家医院用来监控病人健康的数据库,每到周三,会自己崩溃。我在周三的时候通常也会崩溃。因为那天有组会。但我感觉这应该不是这道问题的答案。补充材料:该事件中,最大的难度在于,一周只有一天有机会 debug。该系统记录日志是用 C 风格的代码编写的,把日志字符串记录到了一个固定长度的缓冲区中,其中日志时间一栏,格式例如Monday, July 17, 1997, 10:38:47.123。请给出你的debug plan。

真相:

因为周三的日志的时间一栏,缓冲区恰好溢出了。(就差一个字节写不下)不会有来自星星的 bug 也没有哪个 bug 是太阳的后裔所有那些你认为的、不惜穿越过时空,来与你情定今生的 bug 都特么是你曾经的二比惹的祸。

当我坐在窗边的时候,内存读写就会失败

这是 Bug 界最经典的传奇之三。

给一个自己设计的 SD 卡控制器写驱动,从五月开始调试,一直很顺利,到了七月份突然开始出现间歇性的 SD 卡读写失败,而且越靠近窗户,失败频率越高。

真相:电路板上芯片的正常工作温度有限,当超过一定的温度时它就带不动负载了,而7月的正午,太阳正好会通过窗户会照到板子,导致温度过高。

摇动游戏手柄的时候,游戏存档就会失败

这是 Bug 界最经典的传奇之四。

在开发 PS1 游戏“袋鼠大进击”这款游戏的存档/读档时候遇到的。Bug 的症状是每隔一段时间存档/读档都会超时失败。并且十分随机。像我这种游戏从来都是一命通关的人其实不是很在乎能不能存档的补充材料:该事件中的难点在于重现 bug。当开发人员把可能出错的代码已经注释到了四大皆空的时候,bug 依然随机出现。偶然间,测试发现了快速重现 Bug 的方法:一边摆动手柄,一边存档。请给出你的 debug plan。

真相:PS 的时钟在高频率下运行时,会影响到主板旁边的晶振,造成手柄控制器的内存卡控制器之间的串扰。手柄上一有信号,内存就被干扰了。

千年虫 bug

这是 Bug 界最经典的传奇之五。

这个千年问题是由 Bob Bemer(美国,ASCII 之父)在 1958 年第一次提出的。在其后的二十年里,他用了很大的努力,希望政府、企业和国际组织(如 IBM 和 ISO)来关注这个问题,但反响寥寥。直到 2000 年将要到来的时候,人们才感觉到两千年问题的紧迫性。于是社会和政府都投入了大量的人力和物力来避免发生大规模的计算机灾难。而从现在来看,这些努力也取得了相应的成果。

“千年虫”还包括以下两个方面的问题:一个是在一些计算机系统中,对于闰年的计算和识别出现问题,不能把 2000 年识别为闰年,即在该计算机系统的日历中没有 2000 年 2 月 29 日这一天,而是直接由 2000 年 2 月 28 日过渡到了 2000 年 3 月 1 日;另一个是在一些比较老的计算机系统中,在程序中使用了数字串 99(或 99/99 等)来表示文件结束、永久性过期、删除等一些特殊意义的自动操作,这样当 1999 年 9 月 9 日(或 1999 年 4 月 9 日即 1999 年的第 99 天)来临时,计算机系统在处理到内容中有日期的文件时,就会遇到 99 或 99/99 等数字串,从而将文件误认为已经过期或者将文件删除等错误操作,引发系统混乱甚至崩溃等故障。

Y2K 问题,或者 Y2k 问题是两千年问题的一个通常叫法。其中 Y 表示"year"也就是年,而 K 则表示拉丁前缀"kilo",表示 1000。Y2K 或者 Y2k 就是指 2000 年。



欢迎加入我的知识星球,一起探讨架构,交流源码。加入方式,长按下方二维码噢

已在知识星球更新源码解析如下:

最近更新《芋道 SpringBoot 2.X 入门》系列,已经 101 余篇,覆盖了 MyBatis、Redis、MongoDB、ES、分库分表、读写分离、SpringMVC、Webflux、权限、WebSocket、Dubbo、RabbitMQ、RocketMQ、Kafka、性能测试等等内容。

提供近 3W 行代码的 SpringBoot 示例,以及超 6W 行代码的电商微服务项目。

获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。

文章有帮助的话,在看,转发吧。
谢谢支持哟 (*^__^*)

世界上最著名的几个 bug相关推荐

  1. 我决定谈一谈世界上最著名的虫子:BUG !

    程序员遇到BUG后,最好的方法是? 我决定谈一谈世界上最著名的虫子:BUG ! BUG困扰了一代又代的程序员,不论是杰出的计算机科学家,还是像Linus Torvalds(Linux内核创始人).Bi ...

  2. 太神了!世界上最著名的菲尔人格测试!

    太神了!世界上最著名的菲尔人格测试! 引导语:这个测试是菲尔博士在著名主持人欧普拉的节目里做的,国际上称为"菲尔人格测试",这已经成为很多大公司人事部门实际用人的"试金石 ...

  3. 世界上十个著名悖论详解

    今天看了十个著名悖论的最终解答:)发一下跟大家分享~第一个电车问题耶鲁大学的公开课Justice也有提到哟~还有第九个薛定谔的猫里提到的公式什么的公主真的不懂啊QAQ 1.电车难题(The Troll ...

  4. 世界上最著名的操作系统是用什么语言编写的?

    Unix 与 C 语言的关系 在服务器领域,最著名的系统莫过于Unix了,即便Linux也是类Unix的操作系统.Unix 是用 C 语言编写的,而且是世界上第一个用 C 语言编写的操作系统.但是 U ...

  5. 世界上最著名也最危险的APT恶意软件清单

    本文尝试列举出由各国军事情报处的网络安全部门开发的最危险.最有效也是最闻名的恶意软件清单,其中有些可以说早已盛名在外,另一些可能你还没听过--然而这正是它最危险之处. 一.Regin Regin被认为 ...

  6. 世界上最著名的24句哲理

    1.记住该记住的,忘记该忘记的.改变能改变的,接受不能改变的. 2.能冲刷一切的除了眼泪,就是时间,以时间来推移感情,时间越长,冲突越淡,仿佛不断稀释的茶. 3.怨言是上天得至人类最大的供物,也是人类 ...

  7. 十大笔记本电脑排行_十大笔记本电脑品牌排行榜 世界上最受欢迎的电脑品牌...

    如今,笔记本电脑已经成为所有商务专业人士的必需品,台式电脑可能会考虑使用更快的处理器和更高的存储容量,但使用笔记本电脑有很多好处,笔记本的特点和规格比台式电脑更优越,这使它们成为更可取的操作系统. 笔 ...

  8. 一行代码损失数亿美元!来看看编程史上的著名bug!

    作为程序员最大的敌人,bug是很多程序员挥之不去的噩梦,一行小小的代码bug,就可能造成致命的问题,造成整个系统的崩盘.今天,菜鸟哥就为大家分享,编程史上的最著名的5个bug. 1.欧洲航天局阿丽亚娜 ...

  9. 世界上第一个bug的发现者——被誉为“COBOL 之母”的葛丽丝 · 霍普。

    生活中无处不存在各种各样的"bug",作为一名程序员,提起bug更是令人提神醒脑,比喝了肾宝还要爽. bug 每天被bug支配着,当然应该了解下对手了. bug原意本来为昆虫的意思 ...

最新文章

  1. 如何在树莓派上进行python编程_设置并使用树莓派进行Python和C语言编程 (下)
  2. Tensorboard安装和访问(pytorch+MobaXterm)
  3. MySQL数据库查询时间段的两种方法
  4. ctab法提取dna流程图_【分子】DNA的提取与检测(下)——质粒DNA
  5. 人工智能的搭便车指南
  6. 前端性能优化知识,包括css和js
  7. Datawhale-零基础入门NLP-新闻文本分类Task01
  8. 漫步微积分二十七——曲线下的面积 定积分 黎曼
  9. ubuntu -- 安装最新版的nodejs
  10. 吴恩达机器学习 逻辑回归 作业2(芯片预测) Python实现 代码详细解释
  11. 爱数助力国资委实现混合IT环境下的业务保护
  12. Unity3D基础11:Rigidbody物理类组件
  13. 委托、Lambda表达式、事件系列06,使用Action实现观察者模式,体验委托和事件的区别...
  14. IE 8 Beta 2中文版首份试用体验
  15. java程序设计实用教程 实验6答案_java程序设计实用教程习题解答与实验指导.doc...
  16. 人民币对PHP金汇率,PHP货币是哪个国家的,和人民币的汇率怎么样,3万人民币能兑换多少?...
  17. PHP性能 - php_performance - by llia alshanetsky
  18. 火车,飞机 查询接口
  19. python中 round函数的使用
  20. 计算机关系差 并 交,计算机三个关系投影 交 并 差是什么意思

热门文章

  1. photoshop轻松制作清晰圆角矩形的描边
  2. 运行java -jar xxxx.jar 报ConfigServletWebServerApplicationContext : Exception encountered during contex
  3. nmap全开扫描,半开扫描_nmap扫描的阶段
  4. 最新免费复制百度文库的方法
  5. 微信机器人自动发消息提醒
  6. UPC 2020年夏混合个人训练第六十三场
  7. emq的客户端与服务端_使用 EMQ X Cloud 物联网 MQTT 云服务
  8. Thinkpad MORFFHL滑鼠接收器配对
  9. 如何绘制双代号时标网络图
  10. 导热硅胶片硬度是什么?导热硅胶片硬度测试及选择标准解析