趣事记录 | 有哪些让你目瞪口呆的 Bug ?
在知乎上看到一个有趣的 Bug 事件,转载记录一下。
原回答地址:Here
发生于麻省理工的一个有意思的bug:只能发500英里的邮件。
原文在此:http://web.mit.edu/jemorris/humor/500-miles
相当Nerd的bug,有兴趣的人看看吧。
大意是,当年麻省的一名系统管理员,忽然收到统计系主任打来的求助电话“咱们的邮件发不了 \(500\) 英里以外的地方,其实,是 \(520\) 英里更准确点”。
系统管理员心里¥!&……*&。
不过在他开始用自己的邮件测试后,发现邮件的确只能发往 \(520\) 英里以内,其余的收件地点一律失败。
于是在他一片纠结中他渐渐开始发现问题,邮件服务器被人更新过操作系统(当年还是SunOS),但是由于操作系统的发行版往往配备了旧版软件,于是在更新操作系统的时候邮件软件反而被降级了(Sendmail 8 -> Sendmail 5)。
于是进一步调查发现,在更新操作系统时,管理员自己编写的Sendmail配置文件(sendmail.cf)被保留了下来。这样就出现了这种状况:Sendmail 5尝试解析Sendmail 8的配置文件。
但是为什么会是 \(500\) miles呢?为什么是 \(500\) miles咧?
原因是这样的,Sendmail 5面对陌生的配置文件,凡是不理解的部分都会忽略,凡是没设置过的配置项自动设置成0。这样其中有一个被设置成0,这一项就是 (连接远端SMTP服务器的超时时间)timeout to connect to the remote SMTP server。后来经过实验,发现\(0\)秒的timeout会导致Sendmail在 \(3\) 毫秒后中断连接。
所以,为啥是 \(500\) miles?
在当年,MIT的校园网是没有那么多router的,也就没那么多网络延迟,所以连接一个远端主机的时间大概就是光所需的时间。于是3毫秒, 就意味着:
\]
\(558\) 英里。也就是 \(558\) 英里以外的服务器,都无法连接到,而 \(558\) 英里以内的服务器,都可以正常通信。
当当当,这就是 \(500\) 英里的bug啦。
趣事记录 | 有哪些让你目瞪口呆的 Bug ?的更多相关文章
- 那些让程序员目瞪口呆的Bug
程序员一生与bug奋战,可谓是杀敌无数,见怪不怪了!在某知识社交平台中,一个"有哪些让程序员目瞪口呆的bug"的话题引来了6700多万的阅读,可见程序员们对一个话题的敏感度有多高. ...
- 【记录】让人淡疼的BUG之参数传送错误
前言 面试的时候往往容易被面试官问到:“说说你遇到过的比较重大或经典的Bug有哪些,能说一说吗?”我被问时脑海的反应是:“尼玛,这个我从来没有刻意记!一时半会咋想得起来,然后还是没想起来或者是随意给了 ...
- 记录一下最近的解决的坑爹bug
最近解决的bug长得都很别致啊,记录一下 一 :天气插件引用报403 项目里有一个天气插件引用一直报403 后来确定原因是headers里缺少referer源,无法访问资源的服务器,再后来又发现项目引 ...
- 记录 Ext 日历月份选择控件bug解决过程结果
目录 背景 代码 背景 项目使用 Ext.NET 2.2.0.40838 , 对应 Ext JS4.2 版本. 结果 2017/3/31 号的时候偶然间点日历选择控件选择2月,10月等月份突然就跳到3 ...
- [小细节,大BUG]记录一些小问题引起的大BUG(长期更新....)
[小细节,大BUG] 6.问题描述:当从Plist文件加载数据,放入到tableView中展示时,有时有数据,有时又没有数据.这是为什么呢?相信很多大牛都想到了:我们一般将加载的数据,转换成模型,放入 ...
- 寻找bug并消灭系列——记录在Android开发所遇到的bug(一)
之前使用了Android Studio的插件直接为button绑定了监听器,并实现onClick方法(我的onClick方法无论点击哪一个都是要实现setcontentview这个方法设置layout ...
- 寻找bug并消灭系列——记录在Android开发所遇到的bug(二)
bug 1: bug描述: 无法成功地将edittext中的内容传入数据库中 bug动图: 经过: 最近写了个项目,项目要使用到SQL数据库,由于没有相关知识,便是找到了各种资料开始了自学之旅,在de ...
- 记录一个终端入网小助手的bug
背景:技术leader拿到一台超薄笔记本,系统标准化安装,笔记本一开机风扇嗡嗡响,键盘也开始发烫,资源占用排名前三的进程都是终端管理软件,一下子就找上门了.处理:进程分析发现异常,卸载入网小助手后恢复 ...
- ie6,ie7,ie8 css bug兼容解决记录
ie6,ie7,ie8 css bug兼容解决记录 转载自:ie6,ie7,ie8 css bug兼容解决记录 - 前端开发 断断续续的在开发过程中收集了好多的bug以及其解决的办法,都在这个文章里面 ...
- Lucene.net(4.8.0) 学习问题记录五: JIEba分词和Lucene的结合,以及对分词器的思考
前言:目前自己在做使用Lucene.net和PanGu分词实现全文检索的工作,不过自己是把别人做好的项目进行迁移.因为项目整体要迁移到ASP.NET Core 2.0版本,而Lucene使用的版本是3 ...
随机推荐
- centos 7.9安装Prometheus
一.Prometheus功能 Prometheus 在系统监控和警报方面非常强大,它适用于多种应用场景.以下是一些常见的 Prometheus 应用场景,以及具体的例子: 性能监控:Prometheu ...
- Excel数据统计与分析
- .NET生成微信小程序推广二维码
前言 对于小程序大家可能都非常熟悉了,随着小程序的不断普及越来越多的公司都开始推广使用起来了.今天接到一个需求就是生成小程序码,并且与运营给的推广图片合并在一起做成一张漂亮美观的推广二维码,扫码这种二 ...
- 机密计算如何引领AI开发的安全未来
机密计算如何引领AI开发的安全未来 PrimiHub一款由密码学专家团队打造的开源隐私计算平台,专注于分享数据安全.密码学.联邦学习.同态加密等隐私计算领域的技术和内容. 先进的AI模型比如机器学习和 ...
- 【结对作业】第一周 | 学习体会day02
今天我们想要实现线路的查询 发现了几个错误 1 <%-- 下拉表单的命名使用错误,导致无法接收前端数值--%> 首先我们很少使用下拉表单,之前用的也忘了,然后格式出现了错误 2 遇到typ ...
- C++ Qt开发:TabWidget实现多窗体功能
Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍TabWidg ...
- NC65二开经验总结
公式相关 1.显示公式没执行 列表界面显示,卡片界面不显示: Handler的onBoCard执行: getBillCardPanel().execHeadLoadFormulas(); Contro ...
- Ubuntu系统 安装 Zabbix Server 6.0
Zabbix6.0简介: zabbix6.0新特性 1.开箱即用的Zabbix server高可用群集 Zabbix server高可用防止硬件故障或计划维护期的停机: 原生选择加入HA群集配置 定义 ...
- 通过印模生成电子印章-Java源代码
以下代码是处理印模图片的核心代码,通过以下代码可以将公章图片转换为电子印章图片. 制作方式分为四步: 1.在白纸上加盖印章: 2.把加盖印章的白纸扫描,形成图片: 3.将图片通过下面的代码进行自动透明 ...
- shutdown详解
linux下shutdown命令详解 shutdown命令安全地将系统关机. 有些用户会使用直接断掉电源的方式来关闭linux,这是十分危险的.因为linux与windows不同,其后台运行着许多进程 ...