首页 > Unix/Linux, 杂项资源, 轶事趣闻 > 一个空格引发的惨剧

一个空格引发的惨剧

2011年6月20日 发表评论 阅读评论 60,535 人阅读    

你是否相信如果你的程序里没有检查一个变量会导致怎么系统瘫痪?无论你相不相信,这是我一个亲身经历过的案例,你可以在本站的程序员那些悲催的事儿中找到很多这样的事。这样的事昨天在发生,今天同样在发生。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

重点是其中的很多图片——下面的图片众多。

clip_image001


clip_image002

clip_image007

clip_image010

clip_image011

clip_image012

clip_image014

clip_image016

clip_image019

clip_image020

clip_image021

(全文完)

(转载本站文章请注明作者和出处 酷 壳 – CoolShell.cn ,请勿用于任何商业用途)

——=== 访问 酷壳404页面 寻找遗失儿童。 ===——
好烂啊有点差凑合看看还不错很精彩 (13 人打了分,平均分: 4.85 )
Loading ... Loading ...
  1. kitsusia
    2013年5月18日20:55 | #1

    前两天弄了个Cygwin玩玩,想想这货运行的环境是C:\cygwin,于是手贱地敲了个 rm -rf /,好吧,重装Windows

  2. 定山
    2013年12月18日12:19 | #2

    我觉得这个帖子吧,不能说是程序员的错
    shell本身就没有语法检测,又不能做单元测试。
    只能靠集成测试

    一个再牛X的程序员,一辈子,怎么也会犯这样的过错
    关键问题是,为什么测试没有发现

    为什么这大bug的程序,直接就release了?

  3. LI Daobing
  4. James Xu
    2014年2月24日17:13 | #4

    kitsusia :
    前两天弄了个Cygwin玩玩,想想这货运行的环境是C:\cygwin,于是手贱地敲了个 rm -rf /,好吧,重装Windows

    呵呵,我有一次在虚拟机里尝试rm -rf /,结果centos 6和新的ubuntu都不让我执行,在centos 5上,我倒是忘了虚拟机中有挂载windows的共享分区,结果。。。

  5. 2014年4月26日21:33 | #5

    噗……没想到居然发生过如此惨绝人寰的事情

  6. 2014年7月19日07:39 | #6

    GitHub Commits 上所有来自二次元的吐槽都 404 了 QAQ

  7. szqh97
    2014年8月28日16:29 | #7

    我越看越想执行下 rm -rf /

  8. szqh97
    2014年8月28日16:30 | #8

    @duyt1001
    我的习惯是yes | rm -rf ….
    更恐怖

评论分页
1 2 4875
  1. 2011年6月25日11:57 | #1
  2. 2011年7月5日04:01 | #2
  3. 2011年11月2日22:48 | #3
  4. 2012年3月11日22:22 | #4
  5. 2012年3月24日00:59 | #5
  6. 2012年3月24日19:52 | #6
  7. 2012年12月10日08:35 | #7
  8. 2012年12月10日09:17 | #8
  9. 2012年12月11日00:33 | #9
  10. 2012年12月11日08:40 | #10
  11. 2012年12月11日11:04 | #11
  12. 2012年12月12日13:39 | #12
  13. 2013年1月2日15:11 | #13
  14. 2013年1月9日08:24 | #14
  15. 2013年1月28日03:32 | #15
  16. 2013年2月16日20:25 | #16
  17. 2013年2月24日11:05 | #17
  18. 2013年3月12日23:09 | #18
  19. 2013年4月15日13:16 | #19
  20. 2013年6月4日02:35 | #20
  21. 2013年6月12日14:29 | #21
  22. 2013年8月17日22:24 | #22
  23. 2013年8月28日12:09 | #23
  24. 2013年11月10日16:16 | #24
  25. 2014年2月24日08:12 | #25
  26. 2014年2月24日14:09 | #26
  27. 2014年2月24日16:32 | #27
  28. 2014年2月24日18:23 | #28
  29. 2014年2月25日10:20 | #29
  30. 2014年2月28日12:51 | #30
  31. 2014年6月12日12:44 | #31
  32. 2014年8月3日05:48 | #32