「全世界?」Sam倒抽一口涼氣。
這時,Rust也氣喘吁吁地趕到現場,手裡的螃蟹玩偶掉在地上。「我剛才試著從監控系統追蹤問題源頭......」她停頓了一下,臉色蒼白,「是我的錯。」
VSCode走到門邊,仔細觀察著門框。「等等......這裡有個維修用的手動開關。先進去再說。」她蹲下身,從門框下方找到一個隱藏的小蓋板,用力一扳。
78Please respect copyright.PENANAKNlze0uHOq
喀嚓。
78Please respect copyright.PENANA9yJau21pxT
玻璃門緩緩滑開,一股悶熱的空氣撲面而來。
眾人魚貫而入,眼前的景象讓所有人都倒抽一口涼氣。
大廳裡,數十個穿著橘色制服的女孩們橫七豎八地倒在地上,有的趴在工作台上,有的倒在伺服器機櫃旁,有的甚至就倒在走廊中央。每個人的胸口都還在微微起伏,顯示她們只是昏迷,並非更糟的狀況。
「這......這是......」VSCode捂住嘴。
「全球所有的CF節點化身......」Wireshark掃視著大廳,「東京、倫敦、紐約、新加坡、雪梨......全部都在這裡。」
Sam走到最近的一個CF娘身邊,她的胸前名牌寫著「Bot Management - Feature Generator」,旁邊散落著一個巨大的檔案夾,裡面的文件堆得像小山一樣高。
「這是......?」Sam拿起資料夾中的文件,「怎麼會這麼厚?!」
Rust走上前,聲音帶著自責,「讓我解釋......昨天晚上,ClickHouse那邊做了權限變更。」
「ClickHouse?那個資料庫喔?」夏音插話,原來她電話沒掛。
「對。Bot Management的工作需要定期從ClickHouse查詢資料來判斷哪些是惡意機器人。」Rust打開平板,「原本系統只會看到default資料庫的表格,但權限變更後,系統可以一次把大量資料庫的東西全都收到。」
「所以?」VSCode皺眉。
「因為沒有指定資料庫名稱,SQL娘,應該是她,把所有資料全都抓了。那是她的個性,也不能說她怎樣。但是......雙倍的欄位,雙倍的資料。」Rust咬著嘴唇,「特徵檔一下子從60個特徵膨脹到超過200個。」
Sam瞪大眼睛,「等等,200個?你們的系統不是有上限檢查嗎?」
「有,」Rust的聲音越來越小,「上限設定是200個特徵......但是我在FL2引擎裡,為了效能最佳化做了預先記憶體分配......」
「然後呢?」VSCode已經猜到後續了。
「然後當特徵數量超過我設定的200個時,檢查機制發現了錯誤,回傳了一個Err......」Rust閉上眼睛,「但我當時太自信了,覺得『這個檢查絕對不會失敗』,所以直接用了.unwrap()......」
78Please respect copyright.PENANAn1XERNOh8e
現場陷入死寂。
78Please respect copyright.PENANAfJIxNIlDbc
「所以當那個膨脹的特徵檔被推送到全球所有節點時......」Wireshark的聲音也變得沙啞。
「全部爆了了。」Rust低下頭,「核心引擎崩潰,所有依賴它的節點娘都因為同一個unwrap指令直接昏迷。我殺了整個Cloudflare。」
VSCode深吸一口氣,「現在不是追究責任的時候。我們得想辦法喚醒她們。」
一大段修復後,Sam終於點點頭,「好。查詢修正了......重新生成特徵檔......63個特徵,正常。現在準備推送修復版本。」
「等等,」Wireshark伸手把正要按Enter的Sam拍掉,「我們不能直接推給所有節點娘。萬一修復版本還有問題,她們不一定撐得過來。」
「金絲雀部署,」VSCode立刻反應過來,「先找幾個節點娘幫忙測試,確認沒問題再逐步擴大。」
「就從台北開始吧。」Sam選擇了離他們最近的一個昏迷的節點娘。一行人想辦法把她抱上手術台開始推送。
修復ClickHouse查詢......OK78Please respect copyright.PENANAdEWTJsLzdB
生成新特徵檔......OK78Please respect copyright.PENANA7Mgz8U2LP9
推送到台北節點......OK78Please respect copyright.PENANALXZdJLmj9o
重啟FL2引擎......OK
螢幕上的錯誤訊息消失了,取而代之的是:
[Cloudflare][Taiwan - TPE] Server functioning normally......
躺在手術台上的節點娘眼睛稍微開始有了動靜,隨後睜開眼睛,「你們......你們怎麼跑來了?」Rust連忙鞠躬道歉賠不是。
78Please respect copyright.PENANA56C6bZkF0K
「成、成功了......」Sam興奮地說。
「別高興太早,」npcap緊盯著監視器,「觀察五分鐘,確保穩定。」
五分鐘後,台北的節點娘一切正常。她告別一行人,跑回自己的辦公室。
「可以逐步推送了,」Sam下達指令,「先從亞洲開始,然後歐洲,最後美洲。每個區域間隔十分鐘。」
隨著嚓嚓嚓的電流聲,螢幕牆上的紅燈開始一個個轉綠。大廳裡,節點娘們陸續醒來,從亞洲開始,像漣漪一樣向外擴散。
三十分鐘後,最後一個美洲西部的節點娘睜開眼睛,「我是誰,我在哪,我要......」
78Please respect copyright.PENANAeG63JXgrRz
樓下的節點娘跟CF娘們開始嘈雜,為首的是剛剛抱著一大疊文件的Bot Management娘,「所以剛剛到底怎麼了,我只記得突然收到一大疊資料,然後胸口劇痛了一下,下一段記憶已經是你們把我叫醒的事情了。」
「呵呵......說來話長......」Rust繼續鞠躬道歉,「對不起對不起對不起對不起對不起對不起......」
「其實也不全然是她的問題啦哈哈。」Sam撓了撓頭髮。
78Please respect copyright.PENANAFqFTTExL9X
離開CF大樓的路上,夕陽將橘色的光芒灑在外牆上。
Sam看著手機,各大社群平台上都在歡呼「CF恢復了!」。她突然笑了。
78Please respect copyright.PENANAm90utoZpg5
「欸,VSCode。」
「嗯?」
「我決定了,回去之後我要好好複習一下基礎語法。」Sam認真地說,「今天如果不是大家一起努力,光靠AI還真解決不了問題呢。」
78Please respect copyright.PENANAR4M2KmGuzH
VSCode挑了挑眉毛,「喔?某人終於願意承認自己過度依賴GPT了?」
「哎呀,工具歸工具,基本功還是要有的嘛。」Sam伸了個懶腰,「而且你看,今天的問題根本不是什麼高深的技術——ClickHouse權限沒搞清楚,SQL沒寫好,錯誤處理太隨便......都是基礎但容易忽略的東西。」Sam又補了一句,「還有,我用的是Claude,不是GPT。」
78Please respect copyright.PENANAEWD6Cn5fnk
夏音笑著說,「好啦好啦,現在終於能回去打Phira上傳成績了!小奈你要不要一起——」
「走啊,欸欸我好不容易打過IN 13了欸!」
78Please respect copyright.PENANAkEe930xLzS
事件發生後幾個月,ClickHouse娘現在每次變更權限前,都會發一封長長的郵件給所有可能受影響的系統 - 然後就被圍著打。
78Please respect copyright.PENANAHPsEecj5eI
以上故事純屬虛構,只是突然想寫而已。78Please respect copyright.PENANATzBL1ATq5k
不一定跟11/18那起事件完全一樣(雖然基本上差不多)78Please respect copyright.PENANAWuTQp8vKWY
如果想了解完整情節,強烈建議乖乖去讀官方的報告!
78Please respect copyright.PENANAtdIAROl4iB
78Please respect copyright.PENANAcZQlrcKFsd
註解
可以讓我偷懶一下嗎......


