a5b57d8ab88d18e10d6e5dbbc3698178bf87d0c2
judgeSubmission 自己的 try/catch 已经把正常路径上的异常都接住、落成 SYSTEM_ERROR 了,但队列的 failed 事件只有一行 console.error。判题队列没配 attempts(flowchart 队列配了 3),失败即终局;worker 进程被杀那种 —— 机房断电、容器 OOM、部署重启 —— BullMQ 走完 stalled 重入队还是没人接,最后 emit failed,那条提交就永远停在 「等待评分」:学生看着转圈,教师统计里还占着一个「判题中」的名额。 加 failAbandonedSubmission(),在 failed 里调用,复用已有的 markSystemError(只动 PENDING/JUDGING,判完的和重判过的都不会被覆盖)。三种情况实跑验过:不存在的提交 安全返回、卡住的那条变成 result=5 并写入 err_info、已 AC 的那条没被动。 生产库里 3 条卡死的 PENDING(2022-11 / 2026-03 / 2026-04)都是旧栈时代留下的, OJ2 上没有实例 —— 这次是把口子堵上,不是修已发生的故障。那 3 行和跟着差 1 的三道题 计数器还得手工处理。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KqjE6qPo67fqVDKn6Bx7yd
Description
No description provided
Languages
TypeScript
58.5%
Vue
39.6%
Shell
1.3%
Dockerfile
0.5%