管理層們如蒙大赦般退開,陸澤繃緊的肩線肉眼可見地鬆弛了半分。
陳默走到他身後,這個高級工程師再次緊張,後頸的絨毛都豎了起來。
“集群狀態?”陳默問。
“鎖…鎖服務主節點CPU100%,子節點拒絕握手。”陸澤聲音發顫,“仲裁日誌顯示同步延遲超閾值,觸發自鎖。”
“還…還在查。”一滴汗砸在鍵盤上。
陳默俯身,手指劃過屏幕調出網絡流量熱力圖。
代表數據中心內部東西向流量的區域正燃燒著病態的深紫。“BGP協議流量激增三百倍,”他指尖敲在紫斑中心,“查這個異常節點,現在。”
陸澤像抓住救命稻草,手指終於落向鍵盤。
命令行的白光在他瞳孔裡跳動。
五分鐘後,嘶啞的彙報響起:“是…是物料追溯子係統!它在瘋狂廣播路由更新!”
一直沉默的徐雙龍猛地抬頭:“不可能!那模塊上周剛做完負載均衡切割!”
“但路由表的確在爆炸性增長!”陸澤調出滾動的路由表日誌,屏幕被瘋狂的“UPDATE”指令淹沒。
陳默眼神一凜:“切到備份區獨立鏈路,物理隔離故障節點。”
徐雙龍撲向控製台執行指令。
三分鐘後,主屏幕上代表網絡風暴的紫斑開始消退,但APS核心集群的綠色波浪線依舊是一條死寂的直線。
“鎖服務還是沒活!”彭聰一拳砸在控製台上。
“內存泄漏源沒掐斷。”陳默目光如掃描儀般掠過陸澤的屏幕,“dUmp出鎖服務進程堆棧,過濾‘MaterialTraCe’關鍵字。”
陸澤依言操作。
海量的內存地址與十六進製碼中,一行刺目的報錯被高亮捕獲:
[FATAL]MaterialTraCeJVMOWHaSOCk
“哈希表死鎖?”徐雙龍失聲,“這模塊的代碼審計是我親自做的!負載測試時百萬級物料條目都…”
他的話戛然而止。
陳默已經調出某個開發項目數據庫切換日誌。
一條記錄如冰錐刺入眼簾:
2017062723:58:11物料主數據表完成從OraCle到GaUSSDB的在線遷移。
死寂。
隻有空調風口的嘶鳴在指揮廳回蕩。
所有人都明白了。
壓力測試清空了數據,卻沒重置物料表遷移後觸發的自增長索引閾值。
當子係統的JVM試圖擴容HaShMap以容納新的物料ID段時,撞上了分布式鎖的同步機製,兩個核心模塊在內存的修羅場裡同歸於儘。
“修複方案?”陳默的聲音聽不出波瀾。
“重啟鎖服務集群,強製清除死鎖。”張銳語速急促,“但數據一致性會崩!排程引擎可能輸出衝突指令,引發產線混料!”
“先恢複生產。”陳默斬釘截鐵,“數據修複窗口我向左董要。”
他拿起專線電話。
撥號音隻響半聲便被接通。