您当前的位置:首页 >> 家居资讯

一个 Python Bug 干倒了作价 1.6 亿美元的公司

2023-04-13 12:16:01

人反问生产小组什么时候开始连动年末版,技工回答称之为:"我们并未开始继续可用 V3 公共服务器端了。" 不过,由于容量太大了,该小组立即继续映像所有现有的公共服务器端,然后在更进一步软体栈之前继续可用。

连动工作年末打开,不过一些怪异的坏事发生了。连动步骤之前,更进一步Facebook并很难真正地用到。公交系统小组匆匆忙忙地刊发了一个保障该Facebook,整个小组接踵而来了思索。因为,他们并很难一个回滚原先。然后有一个技工说明了了或许是唯一确实的为了让:继续向上连动。

他们也的确这么继续做了,一个同以致于长后,当全部量连动顺利进行,原先Facebook该Facebook取而代之的是 Digg v4 旧版,所有执法人员也长舒抢先。

不过马上很较高兴没多久,大家见到多数的该Facebook呈现出不会存储的稳定状态。中期,该生产小组将疑虑定位为 Cassandra 一个大,因此他们拓展了对 memcache 的采用,作为保护 Cassandra 的一个写就通寄存器。

几个同以致于长便,访客该Facebook很难疑虑,但是并未提出申请的浏览器却几乎注意到报错的该Facebook,如 MyNews,该该Facebook类似于“参与者之前心”,不会呈现出浏览器与每篇篇名互动的记录以及个性化的体育新闻该Facebook。心灰意冷之下,生产小组将提出申请浏览器的默认该Facebook改为 TopNews,这样使得浏览器提出申请便可以采用Facebook。

隔日,MyNews 并未彻底不会出访,Facebook均会四个同以致于长便就不会用到故障。除此之外,还有几十个小疑虑也在不断用到。

于是,他们之后次继续做了一个大胆的立即——从头开始写就 MyNews 该Facebook。起初,该小组以为 Cassandra 的寄存器击穿了 memcache,摧残了涉及功用。便他们用 Redis 写就出了,并实施了一个特罗斯季亚涅齐的 Redis 一个大,并成功将取而代之的迁至到新开发上。

遗憾的是,生产小组还是并不需要均会四个同以致于长就手动重启每个的网络。

单纯来看,相当于疑虑的根源还是很难找到,只是用了一种麻烦的替代方案来短暂全力支持。没一心到的是,这个 Bug 节省了该小组一个年底的时长来跟踪。

好在之后一还是见到了疑虑的所在。Digg 的 API 公共服务器端是一个 Python Tornado 公共服务,它将 API 调用到 Python 后端层,即 Bobtail(前端是 Bobcat),其之前一个最往往被出访的端点是用来通过浏览器的英文名字或 ID 来检索浏览器。因为它全力支持按英文名字或 ID 检索,所以它把两个变量的默认值都设置为空本表。

def get_user_by_ids(ids=[])

然而,Python 只在变量第一次被评估时模板默认变量,这意味着每次调用变量时都不会采用同一个本表。

在这种状况下,每次调用时,浏览器的 ID 和英文名字都被附加到默认本表之前。几个同以致于长后,这些本表开始在每次请求之前检索不计其数的浏览器,甚至压垮了 memcache 一个大,避免了该Facebook崩掉。

通过一个单纯的例子可以直接看出:

def f(l=[]): l.append(1) print(l)f()f()f()输出[1][1, 1][1, 1, 1]

终于

坏事终于的情节是,Digg 小组修补了该漏洞,Digg v4 基本上正常重启。而东北方此事过去了一周后,Digg 迎来了终于一任 CEO;一个年底后,Digg 打开第三轮裁员;一年后,Digg 子公司被 Chartbeat 的母子公司 Beatworks 以 50 万美金的单价注资。

谁曾一心,Digg 也是的网站的名声大噪,净值曾达到过 1.6 亿美元,稳坐过《零售报》的年底历,Google 也曾原先以 2 亿美元将它收入囊之前。没一心到,正是这一次的最终改版让 Digg 不断财产损失了人气,以及实际上一些管理机构疑虑,让竞品不断超越。至此,一家创业者明星子公司自始陨落。

Will Larson 在文末写就道,「Digg V4 有时不会被作为灾难性刊发的例子,就是指的尽力是我们不无论如何刊发它。我以前一时间同意这个观点,但现在我显然我们刊发的立即是正确的。因为,我们的量相对来说急剧下降,每个年底都在财产损失一大笔钱。如果我们能在刊发最出色的好像和糟糕的好像之间继续做出为了让,无疑不会来得倾向于刊发最出色的好像,但我们却为了让了终于一次挥棒。」

另外,他还对此,“即使是现在,我也不具体当初那样一个才干的小组是如何展开这种愚笨的展示的。”

归根结底,这是程序员一次技术最终避免的惨痛尽力。也有不少网友评论道,「动态型式以致于爽,代码重构一并」。

参考文档:

颈肩腰腿痛吃什么药效果好
济南男科医院哪最好
缓解牙疼可以用什么药
暑湿感冒的症状
英太青的成分有哪些
相关阅读
友情链接