海量的内存地址与十六进制码中,一行刺目的报错被高亮捕获:
[fatal]materialtracejvmheapoverflow-hashmapresizedeadlock
“哈希表死锁?”徐双龙失声,“这模块的代码审计是我亲自做的!负载测试时百万级物料条目都…”
他的话戛然而止。
陈默已经调出某个开发项目数据库切换日志。
一条记录如冰锥刺入眼帘:
2017-06-2723:58:11物料主数据表完成从oracle到gaussdb的在线迁移。
死寂。
只有空调风口的嘶鸣在指挥厅回荡。
所有人都明白了。
压力测试清空了数据,却没重置物料表迁移后触发的自增长索引阈值。
当子系统的jvm试图扩容hashmap以容纳新的物料id段时,撞上了分布式锁的同步机制,两个核心模块在内存的修罗场里同归于尽。
“修复方案?”陈默的声音听不出波澜。
“重启锁服务集群,强制清除死锁。”张锐语速急促,“但数据一致性会崩!排程引擎可能输出冲突指令,引发产线混料!”
“先恢复生产。”陈默斩钉截铁,“数据修复窗口我向左董要。”
他拿起专线电话。
拨号音只响半声便被接通。