一个空格引发的惨剧

运维 系统运维
今天的你,可能在开发者各种各样NB的系统,你会相信你的一个空格也能导致系统瘫痪吗?也许你可能很难相信这个事。不过,再下面这个事将告诉你这个血淋淋的事实 —— 一个空格产生的bug可以让你的系统瘫痪。

51CTO编辑注:下面这件事其实是今年6月份的一次事故,一个安装脚本中不应该存在的空格让无数系统管理员们悲催了……

你是否相信如果你的程序里没有检查一个变量会导致怎么系统瘫痪?无论你相不相信,这是我一个亲身经历过的案例,你可以在本站的程序员那些悲催的事儿中找到很多这样的事。这样的事昨天在发生,今天同样在发生。Unix40多年了,在这40年里,程序员发生过各种各样的的惨剧,但是大多数的事情一而再再而三的重演。

今天的你,可能在开发者各种各样NB的系统,你会相信你的一个空格也能导致系统瘫痪吗?也许你可能很难相信这个事。不过,再下面这个事将告诉你这个血淋淋的事实 —— 一个空格产生的bug可以让你的系统瘫痪。

bumblebee是一个开源项目,这个名字也就是变形金刚里的大黄蜂,这个项目是这样介绍自己的——

bumblebee is Optimus support for Linux, with real offloading, and not switchable graphics.. More important.. it works on Optimus Laptops without a graphical multiplexer..

Optimus 是NVIDIA的“优驰”技术,其可以将您的笔记本电脑PC提升到绝佳状态,提供出色的图形性能,并在需要时延长电池续航时间。这个项目是把这个技术移到Linux上来。

这个项目本来不出名,不过,程序在其安装脚本install.sh里的一个bug让这个项目一下子成了全世界最瞩目的项目,这个bug的fix如下:

@@ -348,7 +348,7 @@ case "$DISTRO" in
-  rm -rf /usr /lib/nvidia-current/xorg/xorg
+  rm -rf /usr/lib/nvidia-current/xorg/xorg

看明白了吗?空格。这个空格会导致什么样的问题呢?呵呵。你有没有感到菊花一紧?这个bug绝对的霸气外露!真是验证了“如何写出无法维护代码”的那句话——“测试你的程序是一种懦夫的行为”。

不过,最精彩还不是这个bug,而是全世界程序员的对这个bug 的 code review comments,真的相当的欢乐。请强势围望!

https://github.com/MrMEEE/bumblebee/commit/a047be85247755cdbe0acce6#diff-1

重点是其中的很多图片,比如下面这个:

注:Github那里有更多的图片,你看了之后会感到程序员们和SA们也是很有幽默感的一群人……

原文:http://coolshell.cn/articles/4875.html 

责任编辑:yangsai 来源: 酷壳
相关推荐

2021-07-27 07:12:11

Getter接口Setter

2021-12-01 06:59:27

架构

2013-12-19 09:58:36

移动应用产品市场

2024-02-28 08:12:25

SSE接口代理

2010-11-04 09:11:34

Fedora 14评测

2021-07-24 13:11:19

Redis数据技术

2024-08-20 21:27:04

docker部署容器

2011-04-27 10:02:54

兼容墨盒用户体验

2021-06-06 16:15:57

地区接口项目

2021-01-25 08:08:22

APP机器人KOB

2018-11-22 15:50:27

MySQL数据库双引号

2011-08-18 10:03:57

NoSQL初创公司适用

2021-02-01 10:42:47

MySQL双引号数据库

2017-05-22 08:35:07

MySQL双引号错位

2010-02-25 15:22:02

2016-10-31 10:38:12

润乾蒋步星数据计算

2019-09-19 14:28:14

程序员分布式系统

2017-08-25 16:38:05

表达式正则血案

2016-10-31 13:31:17

数据计算课题

2020-01-06 13:11:30

技术工具
点赞
收藏

51CTO技术栈公众号