比尔盖子 博客

Tag: Bug

VB6.0中“取消 Pentium(tm) FDIV 安全性检查”是什么意思

最近比尔盖子在用VB6.0编写一个小型程序。在高级编译优化选项中,有一项:“取消 Pentium(tm) FDIV 安全性检查”,这是什么意思呢?在查阅了资料以后,终于明白了,我们就来了解一下吧。

1994年10月,美国弗吉尼亚州Lynchburg College数学系教授Thomas Nicely发现用电脑处理长除法时一直出错。他用一个数字去除以824,633,702,441时,答案一直是错误的。事后才知道,这位教授使用的60-100MHz P5版本奔腾处理器在浮点运算单元有一个问题,原因是英特尔为了加速运算,将整个乘法表烧录在处理器上面,但是2048个乘法数字中,有5个输入错误。在极少数情况下,会导致除法运算的精确度降低甚至出错。这就是后来臭名昭著的Pentium FDIV bug。

因此,为了避免由于处理器bug导致的运算错误,很多编译器都增加了一个编译选项,可以让程序通过间接运算的方法绕过这个FDIV bug,避免在有 FDIV bug的奔腾处理器上运算错误。但是,由于如今几乎已经不可能有人使用这种老奔腾处理器了,因此可以在VB6.0或其它的编译器中(如果有的话),安全的“取消 Pentium(tm) FDIV 安全性检查”,可以轻微提高性能,同时不会导致任何异常。

最后送上十几年前的那个笑话:英特尔有新格言了

United We Stand, Divided We Fall.

注:这句话原出自《伊索寓言》,翻译过来即是

合即立,分即跨。

但是Divided在这里是“除法”的意思。于是就有了翻译过来大概是

加法我们对了,除法我们错了。

解决一个小Bug——Sendmail无法发送邮件

今天输入mail,发现root收到16000多封邮件,都是Cron发给我的。
我一看:

451 gmail.com: Name server timeout

天啊,这年头DNS也抽风?后来经过查阅资料,再加上一些回忆,终于想到了原因:
原来比尔盖子的VPS机房是支持IPv6的,可自从搬到日本去IPv6就没有了。但是Sendmail依赖IPv6,因此没有了它DNS也就查询不成功了。

解决这个问题的方法倒是挺简单:

cd /etc/mail
yum install sendmail-cf
#刚学会超级转义符号:单引号,用单引号引用的内容永远不会具有特殊含义,比双引号厉害。
#正好就用到了!
#下面这句话的意思是:在sendmail.mc的最后一行加上"dnl define(`confBIND_OPTS’, `WorkAroundBrokenAAAA’)dnl" 来屏蔽IPv6!
echo 'dnl define(`confBIND_OPTS’, `WorkAroundBrokenAAAA’)dnl' >> sendmail.mc
m4 sendmail.mc >sendmail.cf
make
service sendmail restart

然后,Sendmail终于把邮件发出去了!

比尔盖子虚拟主机的可用率未能达到99.9%

随着即将结束的2011年,比尔盖子也对服务器进行了一些检查。但是比尔盖子网站的可用率未能达到100%,在此表示道歉。

故障分许:在2011年第三季度时出现了15小时的当机时间,这是由于网站搬迁机房造成的;而在2011年第四季度,由于比尔盖子所使用的Linux内核版本存在Bug,因此导致了多次的系统崩溃,总计崩溃时间达到了10小时。

详细报表

可用率

季度
2011年
99.52%
1天14小时46分钟
第4季度
98.95%
10小时26分钟
11月
100%
10月
98.60%
10小时26分钟
第3季度
99.35%
15小时9分钟
09月
98.48%
10小时57分钟
08月
99.93%
33分钟
07月
99.51%
3小时39分钟
第2季度
99.51%
4小时50分钟
06月
99.90%
44分钟
05月
99.77%
1小时43分钟
04月
99.67%
2小时22分钟
第1季度
99.54%
8小时19分钟
03月
99.73%
2小时2分钟
02月
99.34%
4小时26分钟
01月
99.75%
1小时50分钟
2010年
99.32%
24小时8分钟
第4季度
99.12%
14小时34分钟
12月
99.75%
1小时50分钟
11月
99.60%
2小时54分钟
10月
98.68%
9小时48分钟
第3季度
99.42%
9小时34分钟
09月
98.75%
8小时58分钟
08月
99.81%
36分钟

故障统计

监控项目 开始时间 恢复时间 故障持续时间 故障原因 故障分类
2011-10-20
比尔盖子技术交流站 15:30:50 15:34:07 3分钟 无法连接服务器 网络故障
2011-10-12
比尔盖子技术交流站 01:59:57 02:00:59 1分钟 数据包全部丢弃 网络故障
比尔盖子技术交流站 01:21:41 01:22:41 1分钟 无法连接服务器 网络故障
2011-10-08
比尔盖子技术交流站 19:26:02 19:27:02 1分钟 数据包全部丢弃 网络故障
2011-10-07
比尔盖子技术交流站 15:30:33 16:02:34 32分钟 请求超时 软件故障
2011-10-05
比尔盖子技术交流站 01:11:35 08:13:48 7小时2分钟 请求超时 软件故障
2011-10-04
比尔盖子技术交流站 15:39:22 18:26:25 2小时47分钟 请求超时 软件故障
2011-10-02
比尔盖子技术交流站 09:36:47 09:37:48 1分钟 服务器无返回数据 网络故障
2011-09-30
比尔盖子技术交流站 09:48:41 18:20:58 8小时32分钟 无法连接服务器 软件故障
比尔盖子技术交流站 09:48:32 18:20:53 8小时32分钟 数据包全部丢弃 软件故障
2011-09-10
比尔盖子技术交流站 15:26:00 17:46:26 2小时20分钟 无法连接服务器 软件故障
比尔盖子技术交流站 15:21:45 17:27:16 2小时5分钟 数据包全部丢弃 软件故障
比尔盖子技术交流站 14:51:43 14:56:00 4分钟 无法连接服务器 网络故障
2011-08-27
比尔盖子技术交流站 07:03:50 07:35:56 32分钟 无法连接服务器 网络故障
2011-08-21
比尔盖子技术交流站 01:58:40 01:59:41 1分钟 无法连接服务器 网络故障
2011-07-29
比尔盖子技术交流站 16:11:48 16:28:50 17分钟 请求超时 网络故障

中彩了,Linux居然遇到内核Bug,无法开机!

用Linux,yum update一下内核,用新内核开机引导,卡在

Starting  /boot
Started  /boot

过了很长时间,终于提示缺少什么依赖,无法挂载/home,然后就提示“提供Root密码来维护“,输入密码后,又提示”亲,欢迎来到紧急模式“!

无奈啊,reboot一下。这回可好啊,内核崩溃,dump信息一个屏幕也显示不下。换回原来内核,木有问题!真是Kernel Bug,中彩了中财了!

今天晚上挂机,yum update一下,如果等明天早上起来还是内核崩溃,有必要考虑向Fedora或kernel.org汇报一下了。

2.6.40的内核令人无语啊!

Copyright © 2022 比尔盖子 博客

Theme by Anders NorenUp ↑