概述
T 日下午,一套在产 MES 系统的第三方排产系统(下称 APS)工单状态回写链路发生静默失效:MES 侧所有业务功能(开工、报工、结单)完全正常,但对 APS 的状态推送全部停止,回写失败记录表自当日起不再产生任何新数据。故障持续约两天后被发现,重启服务即恢复,无业务数据损坏。
本文完整记录该故障的定位过程、根因机制、修复方案与验证方法。该故障的典型性在于:四个各自不算缺陷的设计组合在一起,形成了一个无任何错误输出、无任何自愈可能、且监控系统完全盲区的失效模式。
- 直接根因:HTTP 客户端未配置连接与读取超时,第三方接口瞬时半死(TCP 连接建立但不再回包)后,10 个推送工作线程永久阻塞在 socket 读取上;
- 放大因素:推送经固定大小线程池异步执行、队列无界、异常被静默吞掉;
- 恢复手段:仅能重启进程(无超时的 socketRead 永不返回,线程无法自行释放)。