提起 18 岁,你会想到什么?有人会回想起那段专心备战高考的日子,有人会畅想理想中的大学生活,也有人已经开始为成年后的自己未雨绸缪——如今 18 岁的程序员“萌新” Rohith Sreedharan 就是这样(其推特简介有一句“一位 18 岁的青少年”)。
可能是出于练手,也可能是为了给简历“润色”,上周五 Rohith Sreedharan 向全球知名游戏公司 Epic Games 的 GitHub 仓库提交了一个“可以但没必要”的 PR(旨在优化 README 文件中的几个措辞问题及 Logo 尺寸)。
殊不知,这个 PR 所引发的后续,真的可谓为其简历添上了“浓墨重彩”的一笔:导致邮件“轰炸”了约 40 万名开发者,这起事件还被列入了维基百科。
简单来说,这件事的起因就是 Rohith Sreedharan 向 Epic Games 提交了一个没什么技术含量的 PR——提交 PR 没问题,PR 没啥技术含量也没问题,可问题在于 Rohith Sreedharan 在提交了这个 PR 之后,为了让自己的 PR 尽快被合并,在评论中 @ 了一个账号:@EpicGames/developers。
可能在 Rohith Sreedharan 看来,一个账号只对应一个人或一个组织,其消息也只会提醒他 @ 的账户持有者。但意外的是,按照虚幻引擎 GitHub 源代码访问规定显示,凡欲访问项目源代码者,需先加入 Epic Games 组织。
也就是说,这个“@EpicGames/developers”涉及的不只是一个人或少数几个人的团体,而是当时人数高达 398463 名的 Epic Games 组织全体成员。
结果可想而知:Rohith Sreedharan 提交的这个 PR,被以邮件的方式通知给了这近 40 万名开发者。
更离谱的是,只要这 40 万名开发者中有人对 Rohith Sreedharan 的这个 PR 留言评论,其评论也会被邮件通知给 Epic Games 组织的全体成员,即他们将集体陷入邮件“轰炸”之中。
这种情况下,如果 Rohith Sreedharan 提交的这个 PR 没有问题最好不过,可很多收到通知的开发者在查看该 PR 之后却发现了不少问题,由此又引发了大量评论及相应的邮件通知。
“这是在用更多的错别字来改正错别字。”
“你的补丁所造成的问题与该修复的问题一样多,甚至你的 PR 都没有描述它在解决什么问题。”
很快,有开发者指出手动取消订阅该 PR 的方法:“右栏中有一个‘取消订阅’按钮,几乎在底部、参与者列表的正上方。单击它并忽略即将传入的大量通知。”之后,Epic Games 方面在知情后也尽快锁定了该 PR,关闭其评论功能。
不过由于 GitHub 的邮件通知服务因此受到影响,出现了邮件发送延迟的情况,即开发者事后可能仍会陆续收到此前积压未及时发出的邮件。
无意用邮件“轰炸”了近 40 万名开发者的后果使得 Rohith Sreedharan 自身十分愧疚,他特地在推特发布了一则推文表示歉意:
“我非常抱歉,我不知道会有 40 万名成员被标记,真心为这些垃圾邮件感到非常抱歉,向包括 @EpicGames 和 @github 在内的所有团队道歉,没想到会发生这种事,谢谢你们通知我!我保证这种事不会再发生了。”
不仅如此,这件事对于年仅 18 岁的 Rohith Sreedharan 而言,显然有些不能承受且后怕:“我担心我的 GitHub 账号被禁”、“FBI(联邦调查局)会查吗?”、“我真的开始感觉我快要死了…”
面对这位 18 岁少年的道歉与担忧,大多开发者留言表示理解和安慰,并提出 GitHub 应优化机制,避免此类事件再次发生:
“这不是你的错,因为系统没有阻止你这样做:1)在发送消息之前,系统应非常清晰地显示谁会收到你的通知;2)不应该在我们的权限级别下对所有的 repo 参与者进行通知。”
“将问题归咎于 GitHub 系统吧。如果不是你,也会有其他人可能会触发相同的问题,这可能会产生其他不好的影响。也就是说,你在下一次问题发生之前就指出来并挽救了它,这没有什么好担心的。”
对于这些建议,GitHub 高级工程总监 Shay Frendt 留言回应称:“很抱歉,我们当前的系统设计导致你们陷入这种情况。我们正在努力发布补丁,以尝试中断你们都陷入的反馈循环。”
也有开发者轻松调侃道:“现在你可以把这件事写在你的简历上:通过向 Epic Games 的 GitHub 库提交 PR,将 GitHub 变成了发送骚扰邮件的僵尸网络。”
最有趣的是,还有人留言指出,这件事还作为例子被加入了“Email storm(电子邮件风暴)”的维基百科词条中:
对此,18 岁的 Rohith Sreedharan 再度震惊:“在维基百科啊!!”
那么,你对于这起事件有何看法,欢迎留言分享!
参考链接:
https://github.com/EpicGames/Signup/pull/24
https://twitter.com/Rohithaditya/status/1533305205697130497
https://en.m.wikipedia.org/wiki/Email_storm
— 推荐阅读 —
一键三连 「分享」「点赞」「在看」
成就一亿技术人