SC112 表示启动确认通过之后、shutdown-check 发送 SIGTERM 之前,进程或测试请求已经结束。这个间隙很短,所以出现这个诊断码,通常说明测试请求的时长只是勉强够用。
| 诊断码 | SC112 FAIL |
|---|---|
| 阶段 | 启动与进行中的工作 |
| CLI 退出码 | 1 |
| 含义 | 就在发送信号前的一刻,服务或某个测试请求已经结束。 |
| 输出信息 |
|
| 首先检查 | 让测试请求的耗时长于启动它所需的时间,确保 SIGTERM 到达时它仍在运行。 |
如何修复?
让测试请求的时长明显长于确认它已开始、再发送信号所需的时间。加一到两秒的可控延迟通常就够了。
另外检查:
- 服务不是设计成处理完一个请求就退出。
- 探测路由报告工作开始的时间没有太晚。
- 没有定时器或后台任务让进程停止。
- 测试路由在繁忙的 CI runner 上表现一致。
不要靠调大 shutdown.deadlineMs 来解决:这个计时器在信号发出后才开始,影响不到这个间隙。
如何确认已修复?
修复后的时间线中,signal sent 紧跟在 work confirmed active 之后,两者之间没有进程退出或请求结束的事件。在最慢的 CI 环境中多运行几次,确认这段时间余量是可靠的。
如果是服务本身在这个间隙里退出,去应用日志里找定时器、一次性运行模式或未处理的错误,而不是延长测试请求。