這名新手程序員或許無意間創(chuàng)造了一項世界紀錄 —— 他在 GitHub 創(chuàng)建的 PR 讓 40 萬開發(fā)者收到了郵件提醒,并被反復(fù) “轟炸”。
近日,一名開發(fā)者向游戲公司 Epic Games 組織的 GitHub 倉庫提交了一個 PR,內(nèi)容是修改 README 文件中的幾處表述性問題,以及調(diào)整 logo 尺寸。這種沒什么技術(shù)含量的 PR,通常是剛接觸 GitHub 不久的新手程序員在 “練手”,又或是他們包裝自己簡歷的一個手段 —— 畢竟 PR 被合并后即可成為 Epic Games 的 Contributor,這種身份用來填充簡歷至少可以嚇唬一下 HR。然而,這個平平無奇的 PR 卻在剛過去的周末驚動了大約 40 萬使用虛幻引擎 (Unreal Engine) 的開發(fā)者。原因是,這名新手為了讓自己提交的 PR 盡快被合并,他在評論中 '@' 了多個帳號進行提醒,其中'@EpicGames/developers' 觸發(fā)了 reply-all 事件:向加入 Epic Games 組織的所有 GitHub 用戶發(fā)送關(guān)于此 PR 的郵件通知。按照虛幻引擎的政策,要先加入 Epic Games 組織才有權(quán)限訪問項目的源代碼。這時 Epic Games 組織的成員人數(shù)是 398463 名。莫名收到郵件通知的開發(fā)者如果點開了 PR,并且留下評論,那么這些評論也會繼續(xù)以郵件的形式通知給 Epic Games 組織的的開發(fā)者。也就是說,大約 40 萬開發(fā)者會因此收到大量的郵件轟炸。由于需要發(fā)送的郵件數(shù)量太多,導(dǎo)致 GitHub 的郵件通知服務(wù)也出現(xiàn)了延遲。所以開發(fā)者收到郵件的時間會相差較遠,不少開發(fā)者即使在獲知此事后取消了訂閱 PR,也還是會收到在此之前積壓的未發(fā)出的郵件。下圖就是一名被 “郵件轟炸” 的開發(fā)者打開收件箱時的真實記錄:對于這種情況,受影響的開發(fā)者只能手動停止訂閱此 PR 的通知,當(dāng)然 Epic Games 開發(fā)者發(fā)現(xiàn)該情況后也立即鎖定了 PR。事后,當(dāng)事人發(fā)表了道歉推文,他表示自己確實不知道在 PR 評論中的 '@' 會影響到 40 萬開發(fā)者。當(dāng)然,他也不知道自己為了修改表述錯誤而提交的 PR 本身也充斥著許多錯誤。有開發(fā)者調(diào)侃,他可以把這次經(jīng)歷寫到簡歷上:“通過向 Epic Games 的 GitHub 倉庫提交 PR,將 GitHub 變成了發(fā)送騷擾郵件的僵尸網(wǎng)絡(luò)。”也有開發(fā)者認為,GitHub 作為平臺不應(yīng)允許如此寬松的機制:只需要 '@' 一個帳號,就能向幾十萬人發(fā)送郵件通知。
若覺得文章對你有幫助,隨手轉(zhuǎn)發(fā)分享,也是我們繼續(xù)更新的動力。
?「C語言中文網(wǎng)」官方公眾號,關(guān)注手機閱讀教程 ?